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

Apa spesifikasi format Tanggal Heksadesimal di SQL server?

DATE type disimpan secara internal sebagai bilangan bulat 3 byte, yang mewakili jumlah hari sejak 1 Januari 0001.

Nilai hex yang Anda miliki dalam format little-endian, jadi Anda harus mengubahnya menjadi big-endian sebelum Anda dapat menggunakannya di C# DateTime perhitungan:

string hexString = "38320B00";

// convert the first 6 characters to bytes and combine them into an int
// we can ignore the final two characters because the DATE type is a
// 3-byte integer - the most-significant-byte should always be zero
int days = byte.Parse(hexString.Substring(0, 2), NumberStyles.HexNumber)
    | byte.Parse(hexString.Substring(2, 2), NumberStyles.HexNumber) << 8
    | byte.Parse(hexString.Substring(4, 2), NumberStyles.HexNumber) << 16;

DateTime dt = new DateTime(1, 1, 1).AddDays(days);

Console.WriteLine(dt);    // 12/12/2009 00:00:00



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bandingkan Paket Eksekusi di SQL Server

  2. Kunci Utama Gabungan vs kolom ID tambahan?

  3. Jumlah perbedaan DateTime dalam sql (HH.MM)

  4. Menghubungkan RStudio ke SQL Server

  5. Bagaimana cara menghapus bagian waktu dari nilai datetime (SQL Server)?