簡體   English   中英

只更新同一表中另一個DateTime列中的SQL Server DateTime列中的時間

[英]Update only time in a SQL Server DateTime column from another DateTime column in the same table

我有一個包含兩個DateTime列的表。 我想更新我的表,以便它僅從A列復制時間,而僅在B列中更新時間,而不更改實際日期本身。 這是我的數據:

Column A                   | Column B
---------------------------+-------------------------
2017-07-07 16:30:00.000    | 2017-08-30 22:05:00.000

所需的輸出是:

Column A                  | Column B
--------------------------+------------------------
2017-07-07 16:30:00.000   | 2017-08-30 16:30:00.000

我試圖做到這一點,但我無法弄清楚正確的語法或什至是可能的。 預先感謝大家的幫助和指導。

快速選項是

Update YourTable
   set [Column B] = cast(cast([Column B] as date) as datetime)+cast(cast([Column A] as time) as datetime)

加上時間從ab截斷的時間部分后b

select 
    a
  , b = dateadd(second,datediff(second,convert(date,a),a),convert(datetime,convert(date,b)))
from t

extrester演示: http ://rextester.com/IRTP42230

收益:

+---------------------+---------------------+
|          a          |          b          |
+---------------------+---------------------+
| 2017-07-07 16:30:00 | 2017-08-30 16:30:00 |
+---------------------+---------------------+

暫無
暫無

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

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