2017-10-16 9 views
0

私は昨日クラッシュしたストアドプロシージャを持っています。私はそれがDATETIMEv_todayの種類を変更修正した夏時間の移行でMySQL TIMESTAMPの動作が停止しました

DECLARE v_today TIMESTAMP; 
SET v_today = (DATE(NOW()) + INTERVAL 0 SECOND); 

:それはこのように始まります。しかし、私はなぜ昨日(ブラジルが夏時間を始めたとき)だけエラーを発生させているのか理解したい。

エラー:

Mysql2::Error: Incorrect datetime value: '2017-10-15 00:00:00' for column 'v_today' at row 1: 

感謝。

+0

どのようなエラーが生成されましたか? 'SET v_today = CURDATE();'は正しく動作しますか?あなたの質問を編集してください。 –

+1

これはMySQLのバグだと思います。ブラジルの時間推移規律は次のとおりです。 https://www.timeanddate.com/time/change/brazil/brasilia TIMESTAMPの値「2017-10-15 00:00:00」が存在しないようで、1時間前に ' 2017-10-15 01:00:00'。しかし、MySQLはちょうどgackします。 –

+0

意味があります!その理由は...だから、 'TIMESTAMP'は実際のライブには存在しないので、' 2017-10-15 00:00:00'の時間を受け付けません。 @ O.Jonesありがとうございます。 – bonafernando

答えて

1

これはMySQLのバグです。ブラジルの時間推移規律は次のとおりです。 timeanddate.com/time/change/brazil/brasilia TIMESTAMPの値2017-10-15 00:00:00が存在しないので、1時間前に2017-10-15 01:00:00にプッシュする必要があります。しかし、MySQLはちょうどgackします。

関連する問題