2

有谁知道如何CAST(0x993902CE AS DATETIME)从 SQL SERVER(smalldatetime二进制格式)到 MYSQL?

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

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

4

1 回答 1

6

遵循@MartinSmith 在评论和解决方案中的早期建议,我编写了这个简单的代码

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

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

于 2012-10-24T18:52:07.803 回答