Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana menggabungkan tanggal dari satu bidang dengan waktu dari bidang lain - MS SQL Server

Anda cukup menambahkan keduanya.

  • jika Time part dari Date . Anda kolom selalu nol
  • dan bagian Date dari Time . Anda kolom juga selalu nol (tanggal dasar:1 Januari 1900)

Menambahkannya akan mengembalikan hasil yang benar.

SELECT Combined = MyDate + MyTime FROM MyTable

Alasan (pujian untuk ErikE/dnolan)

Ini berfungsi seperti ini karena cara tanggal disimpan sebagai duaIntegers 4-byte dengan 4-byte kiri menjadi date dan 4-byte kanan menjadi time . Ini seperti melakukan $0001 0000 + $0000 0001 = $0001 0001

Edit mengenai jenis SQL Server 2008 baru

Date dan Time adalah tipe yang diperkenalkan di SQL Server 2008 . Jika Anda bersikeras menambahkan, Anda dapat menggunakan Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)

Edit2 tentang hilangnya presisi di SQL Server 2008 dan lebih tinggi (pujian untuk Martin Smith)

Lihat Bagaimana cara menggabungkan tanggal dan waktu ke datetime2 di SQL Server? untuk mencegah hilangnya presisi menggunakan SQL Server 2008 dan yang lebih baru.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL Subquery Max (Tanggal) dan Bergabung

  2. Pernyataan CASE WHEN untuk klausa ORDER BY

  3. Bagaimana melakukan DELETE Pass-Through Query di SQL Server

  4. Cadangan tingkat tabel

  5. Cara Menambahkan Batasan DEFAULT ke Kolom yang Ada di SQL Server