【问题标题】:Sql Cast hexadecimal date to mysql varchar(date)Sql 将十六进制日期转换为 mysql varchar(date)
【发布时间】:2015-02-09 19:57:35
【问题描述】:

我有十六进制 CAST(0x0000A2F5016C1769 AS DateTime) 到 mysql 日期时间的代码, 来自how to cast the hexadecimal to varchar(datetime)?

代码:

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 0x0000A34900BD693D AS BinaryData
    ) d

但我需要将 CAST 日期 CAST(0xA2380B00 AS Date) 转换为 varchar 日期

有可能吗?

【问题讨论】:

    标签: mysql sql-server


    【解决方案1】:

    好吧,我真的不明白为什么需要将其转换为 varchar,因为如果我没记错的话,在大多数情况下(如果不是所有情况),日期时间的行为都像字符串。 但是,您可以使用DATE_FORMAT 函数。它输出字符串,您可以根据需要格式化日期时间。

    【讨论】:

    • 用于插入mysql数据库
    • 这样的? SELECT CAST( CAST( '1900-01-01' + 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 DATE) AS CHAR ) AS converted_date FROM ( SELECT 0x0000A34900BD693D AS BinaryData ) d;
    • 日期 - 0xA2380B00... 结果 - NULL
    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 2011-05-26
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多