我有一个包含两个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

我试图做到这一点,但我无法弄清楚正确的语法或什至是可能的。 预先感谢大家的帮助和指导。

===============>>#1 票数:3

快速选项是

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

===============>>#2 票数:2 已采纳

加上时间从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 |
+---------------------+---------------------+

  ask by Teeko translate from so

未解决问题?本站智能推荐: