'2015-01-08T00:00:00 + 00:00'のようなvarcharをdatetimeを使用している別のテーブルに移行したいとします。INSERTステートメントでのCAST()の奇妙な動作
完璧に動作しているようselect文でCAST()関数を使用して:
SELECT CAST(field_value AS datetime) FROM table
私は2015年1月8日00:00:00取り出します。
しかし、INSERT文を実行しようとするとき、私はこのエラーを取得:
Error Code: 1292. Truncated incorrect datetime value: '2015-01-08T00:00:00+00:00'
挿入ステートメントに取り組んでいないcast関数のように思えます。私が使用しているinsert文は型である:
INSERT INTO new_table
SELECT t.x, t2.x, CAST(t2.field_value AS datetime), t.y
FROM table t
LEFT JOIN table2 t2
ON t2.id = t.t2_id
WHERE t2.field_value !='';
EDITED:
link to sqlfiddle that reproduces the issue
フィドルのSELECT文は私のローカル(ワークベンチとコマンドラインの両方)とは異なる結果を与えます。
は、CONVERT()を使用してみましたと私は同じ問題
どのように私はきちんとNEW_TABLEテーブルに日付文字列を挿入するかを取得しますか?そのためstrictモードの
'INSERT INTO'の後にテーブル名がありません。 – Barmar
LEFT JOINの後に 'ON'節もありません。 – Barmar
関連:https://dba.stackexchange.com/questions/48704/mysql-5-6-datetime-incorrect-datetime-value-2013-08-25t1700000000-with-er – Barmar