【问题标题】:how to make phpMyAdmin import datetime correctly from csv?如何使 phpMyAdmin 从 csv 正确导入日期时间?
【发布时间】:2011-04-12 08:53:53
【问题描述】:

我收到了一个 csv 文件,其中包含客户数据库表的导出。其中两列是日期,在文件中它们的格式为 mm/dd/yyyy。

ID | ActivateDate
-----------------
1  | 05/22/2010
2  | 10/01/2010

我需要将它们导入的 mySQL 数据库将这些列定义为日期时间,默认值为 null。当我在phpMyAdmin中使用导入功能时,它会将导入记录中的所有日期列设置为0000-00-00 00:00:00,无论导入文件中是否有任何值。

谁能告诉我需要做什么才能将数据库中的 ActivateDate 列设置为 2010-05-22 00:00:00 而不是 0000-00-00 00:00:00?

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

    如果可能的话,我会先将这些值导入 varchar 列 fake_column,然后使用 STR_TO_DATE 将它们推送到真正的列 real_column

    UPDATE tablename SET real_column = STR_TO_DATE(fake_column, '%m/%d/%Y');
    

    Reference on how to build the format string

    【讨论】:

    • 谢谢。所以我将导入到 temp varchar 列中,并且有效。但是当我这样做时: UPDATE arrc_Voucher SET ActivatedDT = STR_TO_DATE(ActivatedDTtmp, '%Y-%m-%d %H:%m:%s') ActivatedDT 列(实际日期时间列)仍然为空,并且myPHPAdmin 查询区域显示“0 行受影响”。有什么想法吗?
    • @EmmyS 不,如果你的传入格式是05/22/2010,你需要使用我上面显示的符号。这是传入数据的定义
    • 谢谢。我想是因为您提供了有关构建格式字符串的参考,我应该更改格式。
    • @Emmy 不客气。我考虑过不包括它,因为它可能会误导 :) 下次会听我的想法。
    【解决方案2】:

    如果您有 CSV 格式的文件,请将其打开到 excel 中。

    1. 右键单击包含日期的列标题。
    2. 选择设置单元格格式
    3. 点击“自定义”类别
    4. 在输入框中粘贴“yyyy-mm-dd h:mm:ss”。
    5. 保存文档。
    6. 使用 phpMyAdmin 导入表格

    【讨论】:

    • 这正是我在尝试并以接受的答案失败后所做的。这对我来说似乎更容易..
    • 不是一个选项,如果你没有 excel,和/或 csv 文件太大
    • 太棒了!非常感谢!
    【解决方案3】:

    我只是能够通过将日期字段更改为自定义格式 yy-mm-dd 来做到这一点。 ( FORMAT > CELLS > Custom > yy-mm-dd。

    我必须将其保存为 XLS,但能够使用 PHPMyAdmin 版本 3.3.10 将其正确导入表中

    【讨论】:

    • Is4680,这很好,直到你有超过 65,000 行。对于大多数版本的 Office 来说,它变得太大而无法处理。
    • 谢谢。这是最好的解决方案。但我是用 f​​ormat->cells->date 然后选择 UK
    • 最佳解决方案,应该是认可的答案。
    猜你喜欢
    • 1970-01-01
    • 2017-11-27
    • 2023-03-12
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    相关资源
    最近更新 更多