我继承了一个日期列类型为Varchar
的MySQL数据库。
该列包含十进制字符串。例如:41143.646585648
。
我如何将其转换为DateTime格式?
答案 0 :(得分:0)
您需要知道的是原始开发人员定义为零值的日期。然后,将一个整数天添加到该日期,然后将小数部分乘以86400得到秒并进行算术确定小时,分钟和秒,这是一件简单的事。
如果您有一行知道实际日期和存储值,您可以通过减法轻松确定零日期。
答案 1 :(得分:0)
你可以用字符串替换点,但是对于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