【问题标题】:CAST(0x993902CE AS DATETIME) FROM SQL SERVER TO MYSQLCAST(0x993902CE AS DATETIME) 从 SQL SERVER 到 MYSQL
【发布时间】:2012-10-14 20:18:17
【问题描述】:

有谁知道如何从 SQL SERVER (smalldatetime binary format) CAST(0x993902CE AS DATETIME) 到 MYSQL?

我在 mysql 中尝试了CAST(0X993902CE AS DATETIME),但它应该返回 '2007-05-25 11:58:00' 时返回 NULL。

如果有人能告诉我这样做的方法,我将不胜感激。

【问题讨论】:

  • 如果我没记错的话,0x993902CE 是 UNIX 时间戳?请改用FROM_UNIXTIME(0x993902CE)。我目前无法对其进行测试,因此我不会将其作为答案提交。
  • 您是否要在 mysql 端进行转换?
  • @VincentSavard 如何在 MYSQL 语法中使用 FROM_UNIXTIME(0x993902CE)?
  • @evolquez:这是FROM_UNIXTIME 函数,但根据我的测试,它不会返回您要查找的内容,所以我不希望它能够工作。我不确定0x993902CE 这个数字实际上代表什么。
  • @MartinSmith 你是对的,但我尝试的是在 MYSQL 中将其转换或转换为 DATETIME

标签: mysql sql-server-2008


【解决方案1】:

按照@MartinSmith 之前在 cmets 和解决方案中的建议,我编写了这个简单的代码

SELECT "0x993902CE" INTO @raw_data;

SELECT conv(substr(@raw_data, 3, 4), 16, 10) INTO @days;
SELECT conv(substr(@raw_data, 7, 4), 16, 10) INTO @minutes;
SELECT "1900-01-01 00:00:00" INTO @start_date;
SELECT date_add(@start_date, interval @days DAY) INTO @date_plus_years;
SELECT date_add(@date_plus_years, interval @minutes MINUTE) INTO @final_date;

SELECT @final_date;

http://sqlfiddle.com/#!2/c960a/37

您当然可以内联所有内容或将其放入函数中,这更像是一种概念证明。

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 2022-12-02
    • 2015-12-28
    • 2012-06-12
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    相关资源
    最近更新 更多