【问题标题】:How to import Excel's serialized datetime into MySQL如何将 Excel 序列化日期时间导入 MySQL
【发布时间】:2013-11-30 21:16:30
【问题描述】:

如何将日期格式字段(例如“2012 年 8 月 21 日”)从 Excel 导入和保留到 MySQL?

我正在使用 MySQL Workbench 和 Excel MySQL Excel 数据传输插件。当我选择要导入 MySQL 的 Excel 数据时,我会看到一个窗口,我在其中声明所有字段的变量类型。除日期和时间字段外,所有字段和声明都按预期工作。日期和时间都从 2012 年 8 月 21 日切换到 398475 等数字。如何通过保留虚线 mm/dd/yyyy 格式将这些字段导入 MySQL?我认为同样的程序也适用于时间。

或者,有没有办法将序列化的日期时间值(一个浮点数,表示自 1900 年 1 月 1 日以来的天数)转换回 MySQL 中的 mm/dd/yyyy ?

谢谢!

【问题讨论】:

  • 数据库存储日期时间数据的方式通常不是向您显示信息的方式。通常,日期或时间是自 epoch 以来的秒数、毫秒数或纳秒数。您需要研究date-time data types in MySQL,它们的存储方式以及它们的行为方式。 SQL 标准定义了一些此类数据类型,但数据库通常扩展这些类型或定义更多此类类型。

标签: mysql sql excel datetime serialization


【解决方案1】:

您可以使用 TEXT 函数将日期单元格转换为 MySQL 支持的格式。

=TEXT(A1,"YYYY-MM-DD")

这会将单元格 A1 中的日期转换为 MySQL date 字段期望的 yyyy-mm-dd 格式。

【讨论】:

    【解决方案2】:

    要在 MYSQL 中将序列化日期格式(例如 36422)转换为有用的日期格式,请使用添加到 Excel 使用的基本日期(实际上是 1900-00-00 但由于不存在)的间隔函数必须使用 1900-01-01 这就是为什么我们从日期列中减去 2)

    `'1900-01-01' + INTERVAL(Your_Date_Column - 2)DAY`

    【讨论】:

      【解决方案3】:

      您可以使用 TEXT 函数将日期时间单元格转换为 MySQL 支持的格式

      =TEXT(A1,"YYYY-MM-DD HH:MM:SS")

      【讨论】:

        【解决方案4】:

        只需使用 Date(java.util 包)即可。

        日期 d=Date date=cell.getDateCellValue();

        现在随心所欲地使用它。

        【讨论】:

        • 如果您使用的是 MysqlforExcel 工具,那么您必须在导入之前格式化 Excel 表的单元格。右键单击包含日期的单元格(在 excel 中),然后单击格式单元格,现在选择适当的格式。
        猜你喜欢
        • 2017-12-31
        • 2018-05-03
        • 2016-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多