sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er specifikationen af ​​Hexadecimal Date-format i SQL-server?

DATE type gemmes internt som et 3-byte heltal, der repræsenterer antallet af dage siden 1. januar 0001.

Hex-værdien, du har, er i lille-endian-format, så du bliver nødt til at vende den til big-endian, før du kan bruge den i C# DateTime beregninger:

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. Sådan opgraderes pg_restore i docker postgres billede 10.3 til 10.5

  2. INSERT og OPDATERING i én forespørgsel MYSQL

  3. CodeIgniter result_array() på boolesk fejl, hvis tabellen er tom

  4. T-SQL Sletter alle rækker fra en tabel, når underforespørgslen er forkert udformet