【发布时间】:2017-08-28 16:24:58
【问题描述】:
我在 Excel csv 中有一个列,其中包含这样的值
42973.74257
我想使用以下方法将其转换为 MySQL 日期时间:
DATE_ADD('1900-01-01', INTERVAL (42973.74257*60*60*24) 秒) 作为日期
但是,它会给我一个不正确的结果
2017-08-28 17:49:18.048000
而正确的结果应该是
2017 年 8 月 26 日下午 5:49:18
结果又增加了 2 天。由于我有大约 100 万行,所以我不知道所有结果是否都不正确。
你们有没有更好的方法将序列号从excel转换为mysql?
谢谢,
H
【问题讨论】:
-
MySQL 日期默认使用 YYYY-MM-DD 格式。您可以使用 DATE_FORMAT() 函数进行不同的格式设置。
-
为什么你认为这个值相差了两天?当我尝试 MySQL 查询
select to_days('2017-08-28') - to_days('1900-01-01');时,我得到 42973。 -
结果又增加了 2 天。 8/26 和 8/28。所以我不确定查询是否会为整个数据库产生不正确的结果
-
在保存到 csv 之前尝试将其转换为 Excel 中正确的日期/时间格式如何?
-
啊,我想我找到了问题:Excel 日期时间值将 1900-01-01 计为值 1,而不是 0。而且 Excel 有一个错误,它认为 1900 年是闰年。这占了这两天的时间。 stackoverflow.com/questions/981655/…
标签: mysql excel datetime typeconverter