[英]CSV date format to MySQL date format
當我嘗試將 CSV 文件導入 MySQL 時,所有日期都變為0000-00-00
。
CSV 日期格式為DD/MM/YYYY
,例如 16/11/2016。
MySQL 格式為: YYYY/MM/DD
。 我正在使用 phpmyadmin 來導入它。 如何解決這個日期轉移?
我認為,您需要在添加到MYSQL數據庫之前更改日期格式。
$old_date = date('dd/mm/yyyy');
$middle = strtotime($old_date);
$new_date = date('yyyy/mm/dd', $middle);
DD/MM/YYYY
格式在MySQL中不是有效日期。 您可以將LOAD DATA
與STR_TO_DATE
一起使用,以將日期字符串解析為MySQL可以識別的實際日期:
LOAD DATA INFILE 'path/to/file.csv'
INTO TABLE yourTable FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'
(
col1, col2, @var1, col4
)
SET date_col = STR_TO_DATE(@var1, '%d/%m/%Y')
上面假設您的表有4列,並且從CSV文件讀取的第三列是麻煩的日期。 這里的技巧是,每個日期字符串都將被動態映射為有效的日期類型,從而為您提供所需的結果。
另一種選擇是使用 Notepad++ 的CSV Lint 插件。 該插件可以檢測 csv 文件中的數據類型,包括日期時間格式。 您只需選擇重新格式化即可將所有DD/MM/YYYY
值更改為YYYY/MM/DD
格式。
或者,除了使用LOAD DATA INFILE
,還有一個菜單選項可以將 csv 文件轉換為 SQL 插入腳本。
它將為 csv 文件中的每一行創建INSERT
語句,批量為 1000 條記錄。 此外,它還考慮了列數據類型和日期時間格式,它會自動將日期值轉換為正確的 SQL 日期時間。
生成的 SQL 腳本還包含一個CREATE TABLE
部分,其中每列具有正確的數據類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.