Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

bagaimana cara melemparkan heksadesimal ke varchar (datetime)?

Itu terlihat seperti datetime SQL Server format. Secara internal ini disimpan sebagai 2 bilangan bulat dengan 4 byte pertama adalah hari sejak 1 Januari 1900 dan yang ke-2 adalah jumlah tick sejak tengah malam (setiap tick adalah 1/300 detik).

Jika Anda perlu menggunakan ini di MySQL, Anda dapat melakukan

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

Kembali

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

(Terima kasih kepada Ted Hopp untuk solusi dalam memisahkan data biner)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Fungsi MATCH() Bekerja di MySQL

  2. Mencari Pencarian Teks Lengkap Sederhana? Coba MySQL InnoDB + CakePHP dengan Word Stemming

  3. Tampilkan Kueri SQL Lengkap di Tampilkan Daftar Proses MySQL

  4. Cara Instal MySQL dengan phpMyAdmin di Debian 7

  5. Periksa x hari berturut-turut - stempel waktu yang diberikan dalam basis data