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

Đặc điểm kỹ thuật của định dạng Ngày thập lục phân trong máy chủ SQL là gì?

DATE loại được lưu trữ bên trong dưới dạng số nguyên 3 byte, đại diện cho số ngày kể từ ngày 1 tháng 1 năm 0001.

Giá trị hex mà bạn có ở định dạng little-endian, vì vậy bạn sẽ cần chuyển nó sang big-endian trước khi có thể sử dụng nó trong C # DateTime tính toán:

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. SQL SUM từ hai bảng khác nhau

  2. Cách chuyển mảng chuỗi trong tham số SQL sang mệnh đề IN trong SQL

  3. Phát hiện tham chiếu vòng tròn trong SQL

  4. Làm cách nào để viết CẬP NHẬT SQL với bí danh Bảng trong SQL Server 2008?

  5. Trả về các hàng có ID nằm trong chuỗi được phân tách bằng dấu chấm phẩy từ truy vấn con MSSQL