在我正在处理的摘录中,我有 2datetime列。如图所示,一列存储日期,另一列存储时间。
datetime
如何查询表以将这两个字段组合成 1 列类型datetime?
日期
2009-03-12 00:00:00.000 2009-03-26 00:00:00.000 2009-03-26 00:00:00.000
时代
1899-12-30 12:30:00.000 1899-12-30 10:00:00.000 1899-12-30 10:00:00.000
您可以简单地将两者相加。
Time part
Date
Date part
Time
添加它们会返回正确的结果。
SELECT Combined = MyDate + MyTime FROM MyTable
由于日期存储为两个 4 字节 Integers的方式,左 4 字节为date,右 4 字节为time. 就像在做$0001 0000 + $0000 0001 = $0001 0001
Integers
date
time
$0001 0000 + $0000 0001 = $0001 0001
Date并且Time是 中引入的类型SQL Server 2008。如果你坚持添加,你可以使用Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)
SQL Server 2008
Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)
看看How to combine date and time to datetime2 in SQL Server? 以防止使用 SQL Server 2008 及更高版本丢失精度。