【问题标题】:Incorrect datetime value 1292 Laravel 5.7 just from a specific date日期时间值不正确 1292 Laravel 5.7 仅来自特定日期
【发布时间】:2020-06-06 10:31:18
【问题描述】:

我在问答中看到了这个错误,但是我的情况有点奇怪!

我正在使用具有以下数据库设置的 Laravel 5.7:

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
        ],

我的一个表记录的用户出生日期采用timestamp 格式。

这在用户年龄小于 1969-02-22 00:00:00 之前可以正常工作。意思是1970-02-22 00:00:00可以,但是第一个就报错了!

我该如何解决这个问题?

【问题讨论】:

  • 我认为这不是 mysql 的问题。你如何将日期保存到mysql?
  • 你在php中使用strtotime()吗?你如何转换你的日期?

标签: php mysql laravel datetime laravel-5


【解决方案1】:

你有Unix time:

它是自 Unix 纪元以来经过的秒数,即 1970 年 1 月 1 日 UTC 时间 00:00:00,

如果您必须提前保存日期,请使用其他数据类型,例如 DATEDATETIMTE

你可以read here

【讨论】:

  • 这对于 mysql 是不正确的。 DATETIME 类型用于同时包含日期和时间部分的值。 MySQL 以 'YYYY-MM-DD hh:mm:ss' 格式检索和显示 DATETIME 值。支持的范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。 dev.mysql.com/doc/refman/5.7/en/datetime.html
  • 我知道,但我在正文中只提到 日期之前,并且该链接提供了两种数据类型的信息,因此他可以检查他需要哪些以及您何时看到您的任何形式的出生时间
  • @nbk 你说得对,我确实将字段更改为日期时间,现在可以了......
猜你喜欢
  • 2017-11-08
  • 1970-01-01
  • 2017-08-26
  • 1970-01-01
  • 2017-07-18
  • 2020-01-19
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
相关资源
最近更新 更多