sql >> データベース >  >> RDS >> Sqlserver

SQL サーバーの 16 進数の日付形式の仕様は何ですか?

    DATE タイプは、0001 年 1 月 1 日からの日数を表す 3 バイト整数として内部的に保存されます。

    持っている 16 進値はリトルエンディアン形式であるため、C# DateTime で使用する前にビッグ エンディアンに変換する必要があります。 計算:

    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. 更新された行を取得

    2. 省略形のPDOクエリ

    3. レコードのテキストを使用して、Accessフォームのコントロールボックスに貼り付けます

    4. MicrosoftAccessがスタートアップに最適な5つの理由