Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

làm thế nào để truyền hệ thập lục phân thành varchar (datetime)?

Điều đó trông giống như SQL Server datetime định dạng. Bên trong nó được lưu trữ dưới dạng 2 số nguyên với 4 byte đầu tiên là các ngày kể từ ngày 1 tháng 1 năm 1900 và số thứ 2 là số lần tích tắc kể từ nửa đêm (mỗi lần đánh dấu là 1/300 giây).

Nếu bạn cần sử dụng điều này trong MySQL, bạn có thể thực hiện

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

Trả lại

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

(Cảm ơn Ted Hopp về giải pháp trong việc tách dữ liệu nhị phân)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về SUBTIME () - MySQL

  2. Cách đặt hàng theo ngày trong MySQL

  3. Làm thế nào để tính toán tổng số đang chạy trong MySQL

  4. Các cách khác nhau để xem các bảng trong MySQL Server

  5. Làm cách nào để chọn hàng thứ n trong bảng cơ sở dữ liệu SQL?