【问题标题】:Symfony- Invalid datetime format: 1292 Incorrect datetime value: '' for column 'timestamp' at row 1Symfony-无效的日期时间格式:1292 不正确的日期时间值:第 1 行的列 'timestamp' 的''
【发布时间】:2017-08-20 16:42:04
【问题描述】:

当我尝试将列类型设置为日期时间时出现此错误

 /**
 ** @var \DateTime
 *
 * @ORM\Column(type="datetime")
 */
private $timestamp;

错误:

[Doctrine\DBAL\Exception\DriverException]                                                                       
 An exception occurred while executing 'ALTER TABLE fos_user CHANGE timestamp 
 timestamp DATETIME DEFAULT NULL':  
 SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '' 
for column 'timestamp' at row 1 

【问题讨论】:

  • 错误信息对我来说似乎很有描述性
  • @bassxzero 我在尝试更新架构时收到错误消息。时间戳列最初是“字符串”,但尝试更新为时间戳。不知道是什么问题

标签: php mysql symfony datetime doctrine


【解决方案1】:

将所有 timestamp = '' 的记录设置为 NULL,然后再尝试更新一次。

您似乎已经有了时间戳列并尝试将其迁移到“DATETIME DEFAULT NULL”。但是因为一些记录有空字符串(''),它不是 NULL 或日期值,它会引发错误。

【讨论】:

  • @Suleiman 欢迎您!你能把这个答案标记为正确吗?谢谢!
  • 完成了????????
  • 它正在工作,但不是解决方案,从 symfony 3.3.16 升级到 3.4.9 后必须对教义日期类型进行一些更改,并且可能需要在 config.yml 中进行一些修复
【解决方案2】:

我在 Symfony 5+ 中遇到了同样的问题,这个对我有用

$this->addSql('ALTER TABLE _yourTableName ADD date DATE NULL DEFAULT NULL');

然后进行迁移。

【讨论】:

    猜你喜欢
    • 2020-01-19
    • 2017-12-10
    • 2014-06-28
    • 2017-07-18
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    相关资源
    最近更新 更多