[英]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)
加上時間從a
到b
截斷的時間部分后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.