我有CSV文件,我想將CSV行插入到Mysql數據庫。 當我從列的START DATE(格式Datetime)CSV中插入「23.05.17 17:53:25」時,我得到2023-25-17 17:53:25。CSV到Mysql插入日期時間
如何我可以轉換,這在DB獲得正確的日期格式2017年5月23日十七時53分25秒
T`hanks
我有CSV文件,我想將CSV行插入到Mysql數據庫。 當我從列的START DATE(格式Datetime)CSV中插入「23.05.17 17:53:25」時,我得到2023-25-17 17:53:25。CSV到Mysql插入日期時間
如何我可以轉換,這在DB獲得正確的日期格式2017年5月23日十七時53分25秒
T`hanks
這可能不是一個正統的解決方案,但你可以簡單地解析輸入字符串並以mysql預期的格式重新創建日期時間。
// for each line in the csv
list($datePart, $timePart) = explode(' ', $fields['date']);
list($d, $m, $y) = explode('.', $datePart);
$dbDate = "$y-$m-$d $timePart";
這會更好地添加一些輸入驗證,但如果你正在做的是數據導入腳本沒關係。
我嘗試,但我得到 \t 0000-00-00 00:00:00 –
你應該使用MySQL的STR_TO_DATE功能:
mysql> SELECT STR_TO_DATE('23.05.17 17:53:25', '%d.%m.%y %H:%i:%s');
結果:
2017年5月23日17時53分25秒
你甚至可以使用的緊湊形式時間字段%T
:
mysql> SELECT STR_TO_DATE('23.05.17 17:53:25', '%d.%m.%y %T');
結果:
2017年5月23日17時53分25秒
這是我的插入代碼 $ =插件「INSERT INTO'stugayc'('CHECKID','CHECKSTDATE','CHECKENDDATE' ) VALUES('$ row [0]','STR_TO_DATE('$ row [1]','%d。%m。% y%H:%i:%s')','$ row [2]')「; –
你應該考慮使用[Prepared Statement](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)來防止SQL注入,但我認爲它應該按預期工作。 – eskeli
我不能這樣做)) –
從@eskeli答案 - >'$ =插件 「INSERT INTO stugayc(CHECKID,CHECKSTDATE,CHECKENDDATE)VALUES(」 。 $ row [0]。 「,STR_TO_DATE(」。$ row [1]。「,'%d。%m。%y%H:%i:%s'),'」。 $ row [2]。 「')」;'這將工作 – codtex
您可以用'STR_TO_DATE()' –