我已经继承了一个日期列类型为Varchar
的MySQL数据库。将十进制存储为varchar转换为datetime
该列包含十进制字符串。例如:41143.646585648
。
我该如何将其转换为DateTime格式?
我已经继承了一个日期列类型为Varchar
的MySQL数据库。将十进制存储为varchar转换为datetime
该列包含十进制字符串。例如:41143.646585648
。
我该如何将其转换为DateTime格式?
您只需要知道原始开发者定义为零值的日期。然后,将一个整数天数添加到该日期,然后将小数部分乘以86400以获得秒数并进行算术以确定小时,分钟和秒,这是一件简单的事情。
如果你有一个你知道实际日期和存储值的行,你可以通过减法很容易地确定零日期。
标记为答案。这是一个非常贫穷和模糊的问题,你是绝对正确的。 – nothingtosee
您可以将字符串替换为小圆点,但对于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
三江源这个链接,但链接的问题,假定我的日期存储在MM/DD/yyyy或相似的格式。我的问题是我有一个十进制数 – nothingtosee
在varchar列中存储为十进制的日期时间:寻找开发人员的时间! –
数字是什么意思?你说这是一个日期和时间的表示,但以什么方式?很难猜到你。 –