Bạn chỉ cần thêm cả hai.
- nếu
Time part
trongDate
của bạn cột luôn bằng 0 - và phần
Date
trongTime
của bạn cột cũng luôn bằng 0 (ngày gốc:ngày 1 tháng 1 năm 1900)
Thêm chúng sẽ trả về kết quả chính xác.
SELECT Combined = MyDate + MyTime FROM MyTable
Cơ sở lý luận (kudo cho ErikE / dnolan)
Nó hoạt động như vậy do cách ngày được lưu trữ dưới dạng hai số nguyên
Integers
4 byte với 4 byte bên trái làdate
và 4 byte bên phải làtime
. Nó giống như làm$0001 0000 + $0000 0001 = $0001 0001
Chỉnh sửa liên quan đến các kiểu SQL Server 2008 mới
Date
và Time
là các kiểu được giới thiệu trong SQL Server 2008
. Nếu bạn khăng khăng muốn thêm, bạn có thể sử dụng Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)
Edit2 liên quan đến việc mất độ chính xác trong SQL Server 2008 trở lên (kudo cho Martin Smith)
Hãy xem Cách kết hợp ngày và giờ thành datetime2 trong SQL Server? để tránh mất độ chính xác khi sử dụng SQL Server 2008 trở lên.