我正在尝试向 MySQL 中插入一条记录,但失败并显示以下消息:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2018-03-25 02:54:00' for column 'trial_ends_at' at row 1 (SQL: insert into `subscriptions` (`name`, `stripe_id`, `stripe_plan`, `quantity`, `trial_ends_at`, `ends_at`, `user_id`, `updated_at`, `created_at`) values (default, redacted_id, redacted_id, 1, 2018-03-25 02:54:00, , 762, 2018-03-18 01:54:08, 2018-03-18 01:54:08))
以下更新也失败了:
UPDATE `subscriptions`
SET `trial_ends_at` = '2018-03-25 02:00:00'
WHERE `id` = '636'
1292: Incorrect datetime value: '2018-03-25 02:00:00' for column 'trial_ends_at' at row 1
但仅在我的本地机器上(在远程服务器上工作正常)并且日期仅在 2018-03-25 02:xx:xx 范围内。
最佳答案
如果我不得不推测,你在欧洲,夏令时在 2018-03-25 凌晨 2:00 结束。这意味着“2018-03-25 01:59:59”之后的一秒是“2018-03-25 03:00:00”。
换句话说,时间无效,这就是您收到错误的原因。
我建议您使用本地时间“2018-03-25 03:00:00”或使用没有夏令时问题的 UTC。
关于Mysql无效的日期时间格式,但仅限于特定时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49343857/