2017-10-16 34 views
0

我有一个昨天崩溃的存储过程。它是这样开始的:MySQL TIMESTAMP停止工作在夏令时转换

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

我已经固定它改变v_today类型DATETIME。但我想明白,为什么它只是在昨天(巴西开始夏令时)发生错误。

错误是:

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'不存在,并且需要向前推一小时到' 2017-10-15 01:00:00'。但是MySQL只是勉强。 –

+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不存在,并且需要向前推进一小时至2017-10-15 01:00:00。但是MySQL只是勉强。