【问题标题】:datetime error in generated columns in MySQLMySQL中生成的列中的日期时间错误
【发布时间】:2019-07-03 18:36:51
【问题描述】:

我有一个表“tbl1”,其中有两个字段:

  1. created_at 类型为 datetime 和 NULL 是允许的。
  2. num_days 类型为 INT(11) 和 NULL 是允许的,默认值为 3。

我正在尝试创建 date 类型的生成列“cut_off”和 STORED 类型的列。

我正在使用这个命令:

alter table tbl1 add column cut_off date GENERATED ALWAYS AS (DATE(created_at + num_days)) STORED; 

我收到此错误:

ERROR 1292 (22007):不正确的日期时间值:'20181119063562'

但是在这个查询中:

select distinct(DATE(created_at + num_days)) from tbl1;

运行良好,没有报错。

任何帮助将不胜感激。

【问题讨论】:

    标签: mysql mysql-5.7


    【解决方案1】:

    你添加的是秒而不是天,一分钟不能有 62 秒

    可以试试

    DATE(created_at + INTERVAL num_days DAY)
    

    【讨论】:

    • 为什么这个查询'select distinct(DATE(created_at + num_days)) from tbl1;'那么工作了吗?
    • 它可能适用于某些值,但对于其他值会产生 NULL 作为错误,并且 MYSQL 反对 ALTER 查询中的错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2013-12-26
    • 2012-05-28
    相关资源
    最近更新 更多