将HH:MM TT转换为时间并追加到日期

时间:2019-06-12 18:34:52

标签: sql-server datetime

我有一列保存一个字符串时间(即8:00 AM),我需要将其转换为实际时间并将其附加到DateTime字段(采用DateTime格式,而不是字符串)上。

示例:
日期字段= 2019-06-25 00:00:00.000
时间字段= 8:00 AM
期望的结果:2019-06-25 08:00:00.000

有人知道我如何在SQL中完成此任务吗?

我知道有些人仍然建议在代码中执行此操作,但是我正在编写一个查询,该查询在两个DateTime字段之间进行比较(其中一个具有集成的DateTime和正确的时间,而另一个具有日期和时间)是分开的

1 个答案:

答案 0 :(得分:3)

使用DATETIME + CAST(timevariable AS DATETIME)将返回您的预期结果:

DECLARE @Time AS VARCHAR (10) = '8:00 AM'
DECLARE @DateField AS DATETIME = '2019-06-25 00:00:00.000';

SELECT @DateField + CAST(@time AS DATETIME)

Demo on db<>fiddle

它也可以与1:00 PM

一起使用