将存储为varchar的十进制转换为日期时间



我继承了一个日期列类型为Varchar的MySQL数据库。

列包含十进制字符串。例如:41143.646585648

我该如何把它转换成日期时间格式呢?

您只需要知道原始开发人员将日期定义为值0。然后,简单地将该日期的天数加上整数,然后将小数部分乘以86400得到秒,然后进行算术以确定小时,分钟和秒。

如果您有一行,您知道实际日期和存储值,您可以通过减法轻松确定零日。

您可以字符串替换点,但是对于unix时间戳来说,剩余的数字计数太大了。我不知道日期是怎么换算成十进制的。也许你应该拆分字符串而不是替换字符串。

也许这段代码会给你一些解决方案的想法:

#SELECT FROM_UNIXTIME(REPLACE('41143.646585648', '.', '')); # Does not work due to wrong amount of numbers in string
SELECT FROM_UNIXTIME(REPLACE('13577.77916', '.', '')); # works

相关内容

  • 没有找到相关文章