[英]MySQL Workbench - Table Data Import Wizard writing all datetime objects as 0000-00-00 00:00:00
我在 MariaDB ( '10.1.37-MariaDB'
) 服務器上使用 MySQL Workbench 8.0。
我正在嘗試使用表數據導入向導將 3 個示例值導入表中。 以下是 CSV 的示例:
emp_id,Event,Event_start_time,Event_end_time,
example,shift,"2020/11/6 0:00:00","6/11/2020 23:59",
example,lunch,"2020/14/06 13:00:00","2020/14/06 13:30:00",
example,break,"2020/14/06 10:10:00","2020/14/06 10:30:00",
在導入期間,每個值都正確顯示,保存日期時間字段( Event_start_time
, Event_end_time
),在運行select
語句后顯示為'0000-00-00 00:00:00'
。
我嘗試了以下格式,但似乎都不起作用:
"2020/11/6 0:00:00"
2020/11/6 0:00:00
2020/11/06 00:00:00
2020-11-06 00:00:00
以下案例成功:
2020-11-06 0:00
但我需要能夠為業務邏輯包含秒數。
更糟糕的是,當我使用相同的向導將表(具有現有的 Datetime 值)導出到.csv
,然后嘗試重新導入時,所有值都加載為'0000-00-00 00:00:00'
。 在為其他人開發解決方案時,我想盡可能減少/避免 MySQL 腳本。 我究竟做錯了什么?
您的日期似乎是YYYY/DD/MM HH:MI:SS
格式,從 MySQL 的角度來看是無效的。 您需要將它們轉換YYYY-MM-DD HH:MI:SS
格式,以便數據庫能夠正確識別它們。
如果您的數據在 CSV 文件中,一個簡單的選項是帶有輸入預處理的LOAD DATA INFILE
語法。 根據您顯示的示例數據,這應該如下所示:
load data infile 'myfile.csv'
into mytable (emp_id, event, @event_start_time, @event_end_time)
fields terminated by ',' optionally enclosed by '"'
ignore 1 lines
set
event_start_time = str_to_date(@event_start_time, '%Y/%d/%m %H:%i:%s'),
event_end_time = str_to_date(@event_end_time, '%Y/%d/%m %H:%i:%s')
您可能需要根據您的實際使用情況調整語句選項 - 可能還有目標日期格式。
我寫的值不正確。
2020-11-06 0:00:00 (YMD)
是正確的。 2020-14-06 0:00:00 (YDM)
不正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.