Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách kết hợp ngày từ một trường với thời gian từ một trường khác - MS SQL Server

Bạn chỉ cần thêm cả hai.

  • nếu Time part trong Date của bạn cột luôn bằng 0
  • phần Date trong Time 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

DateTime 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách DB_NAME () hoạt động trong SQL Server

  2. So sánh ngày tháng trong T-SQL, bỏ qua phần thời gian

  3. Loại biến không mong muốn được trả về bởi Nhận-Công việc

  4. Cách hiển thị truy vấn và kết quả trong tab riêng biệt trong SQL Server Management Studio (SSMS) - Hướng dẫn sử dụng SQL Server / TSQL Phần 15

  5. Làm cách nào để bạn mở tệp SDF (SQL Server Compact Edition)?