Mysql无效的日期时间格式,但仅限于特定时间范围

标签 mysql sql

我正在尝试向 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/

相关文章:

c++ - 从 MySQL 检索时间戳数据到 C++

PHP用外键删除记录后,检查int表

mysql - 根据一个查询中的当前行字段选择下一行

mysql - 如何从一对多关系的 "many"表中选择具有两个特定子 ID 的父 ID?

sql - 如何使SQL表的字段值成为SQL中JSON对象的键?

php - 在 Php 数组中搜索字符串并提取相邻文本

php - MYSQL X 带有事务的锁

mysql - 在mysql中按某些多个条件对列进行排序

sql - SUM()函数sql有上限

sql - 有没有办法从表1中获取TOP N记录,其中N基于表2