sql >> Database teknologi >  >> RDS >> Mysql

hvordan man støber hexadecimalen til varchar (datetime)?

Det ligner SQL Server datetime format. Internt er dette gemt som 2 heltal, hvor de første 4 bytes er dagene siden 1. jan 1900 og den anden er antallet af flueben siden midnat (hvert flueben er 1/300 af et sekund).

Hvis du har brug for at bruge dette i MySQL, kan du gøre

SELECT 
      CAST(
          '1900-01-01 00:00:00' + 
          INTERVAL CAST(CONV(substr(HEX(BinaryData),1,8), 16, 10)  AS SIGNED) DAY +
          INTERVAL CAST(CONV(substr(HEX(BinaryData),9,8), 16, 10)  AS SIGNED)* 10000/3 MICROSECOND
      AS DATETIME) AS converted_datetime
FROM
(
SELECT 0x0000987C00000000 AS BinaryData
UNION ALL
SELECT 0x00009E85013711EE AS BinaryData
) d

Returnerer

converted_datetime
--------------------------
2006-11-17 00:00:00
2011-02-09 18:52:34.286667

(Tak til Ted Hopp for løsningen ved opdeling af de binære data)



  1. Oracle pl-sql escape-tegn (for en ' )

  2. PreparedStatement-spørgsmål i Java mod Oracle

  3. Hent Oracle-tabeltypen fra den lagrede procedure ved hjælp af JDBC

  4. Oracle:Hvordan konverterer jeg hex til decimal i Oracle SQL?