结合日期和时间值(都是日期时间类型)的巧妙方法是什么?

What is the neat approach to combining the date and time value (both of datetime type)?

我正在 table 上写一个 SQL 查询,它有 2 列:

我想将两者结合起来以获得日期时间值(示例:2022-01-22 21:30:00.000)

我尝试使用 DATEADD 函数,但它需要一个间隔,这不符合我的要求table。

我还尝试使用 + 号添加日期,这似乎给出了正确的结果;并尝试将日期转换为 int,然后执行 +,然后转换为日期时间。这没有给出正确的结果。

合并日期和时间值的巧妙方法是什么?

您可以简单地将两部分相加,因为 datetime 的参考日期是 1900-01-01。即,内部 SQL-Server 用数字 0.

表示
select
    StartDate, StartTime,
    StartDate + StartTime as StartDateTime
from t

参见:http://sqlfiddle.com/#!18/0f0a7/2/0

datetime (Transact-SQL) 的文档只是说

Default value 1900-01-01 00:00:00

When the conversion is from time(n), the time component is copied, and the date component is set to '1900-01-01'.