簡體   English   中英

SQL Server DateTime 列中的年份部分更新

[英]Year part update in SQL Server DateTime column

表_數據

我只需要將每個ChangedDate列值的年份部分更改為 2017 年。

例如:

2017-02-08 13:55:30.193   
2017-02-08 13:55:30.193  
2017-02-08 13:55:30.193

您可以使用 DATEADD() 函數更新所有數據列

update t1
    set update_at = t2.update_now
    from (select id,DATEADD(year, 1,update_at ) as update_now from t1) as t2
    where t1.id = t2.id
select * from t1;
DECLARE @DateCol datetime = '2020-02-08 13:55:30.193'

SELECT 
    CONVERT(varchar(50), DATEPART(YYYY,'2017-02-08')) + '-' +
    CONVERT(varchar(50), DATEPART(mm, @DateCol)) + '-' +
    CONVERT(varchar(50), DATEPART(dd, @DateCol)) + ' ' +
    CONVERT(char(12), CAST(@DateCol AS TIME))

輸出

2017-2-8 13:55:30.193

在此處閱讀更多相關信息

我個人會使用DATETIMEFROMPARTS函數 - 似乎是最干凈的方法,無需將每個DATETIME轉換為字符串,然后擺弄剪斷並再次將字符串粘在一起並轉換回DATETIME ....

嘗試這個:

SELECT 
    Id, ChangedDate,

    DATETIMEFROMPARTS(2017, MONTH(ChangedDate), DAY(ChangedDate), 
                      DATEPART(HOUR, ChangedDate), DATEPART(MINUTE, ChangedDate), 
                      DATEPART(SECOND, ChangedDate), DATEPART(MILLISECOND, ChangedDate))
FROM 
    dbo.YourTableNameHere

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM