sql >> Databáze >  >> RDS >> Sqlserver

Jaká je specifikace formátu hexadecimálního data na serveru SQL?

DATE typ je interně uložen jako 3bajtové celé číslo, které představuje počet dní od 1. ledna 0001.

Hexadecimální hodnota, kterou máte, je ve formátu little-endian, takže ji před použitím v C# budete muset přepnout do big-endianu DateTime výpočty:

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. MySQL vybírá řetězec s více speciálními znaky

  2. MySQL vybere název sloupce a hodnotu jako pole

  3. Dynamicky generovaný CURSOR v Postgresql

  4. Jak mohu převést soubor MDB (Access) na MySQL (nebo prostý soubor SQL)?