Mysql
MySQL - 截斷不正確的日期時間值
我需要將一些數據從兩者之間遷移到表中。第一個有一個儲存日期的 varchar(255) 欄位。我想將該日期插入第二個表的時間戳欄位中。
varchar 欄位以這種 ISO 8601 格式儲存值:2020-09-24T15:08:07+02:00。
我使用 STR_TO_DATE 和強制轉換嘗試了不同的轉換,但我總是得到同樣的錯誤:
截斷不正確的日期時間值:‘2020-06-01T09:38:08+02:00’
在選擇值似乎被正確轉換:
SELECT STR_TO_DATE(varcharDate,'%Y-%m-%dT%H:%i:%s') = 2020-06-01 09:38:08
在會推薦
SELECT CONVERT( '2020-06-01T09:38:08+02:00' , DATETIME)
STR_TO_DATE 可以解決問題,但通常很慢。
您可以使用列名而不是文本來執行這樣的查詢來測試性能
CREATE TABLE t2 (tz TIMESTAMP) SELECT CONVERT( '2020-06-01T09:38:08+02:00' , DATETIME)
您應該使用數據類型創建表,
timestamp
然後嘗試插入:create table Timestamp_checking (col_date timestamp(6) ) ; 0 row(s) affected insert into Timestamp_checking values ('2020-06-01T09:38:08+02:00') 1 row(s) affected 0.022 sec