尝试插入json,其值与生成的日期时间字段一起使用

时间:2017-09-26 14:23:54

标签: mysql json autogeneratecolumn

我有一个带有json字段的简单表和来自json中的值的生成字段:

create table foo (
    id integer primary key auto_increment
  , somedata json
  , a_date datetime generated always as convert(somedata->>theDateAsAString, datetime))
);

当我尝试插入一些数据时,我收到错误:

insert into foo(somedata) values ('{"theDateAsAString":"2017-08-23T23:00:00.000Z"}');

ERROR 1292 (22007): Truncated incorrect datetime value: '2017-08-23T23:00:00.000Z'

但是,如果我删除生成的列,添加上面的数据,然后更改表以添加列,我没有收到这样的错误,字段显示应该。为什么呢?

我尝试在my.cnf中设置NO_ZERO_DATE和NO_ZERO_IN_DATE,然后重新启动并使用SHOW VARIABLES LIKE 'sql_mode'进行验证。

1 个答案:

答案 0 :(得分:0)

经过大量的实验,我尝试在生成的列的定义中使用str_to_date,这样做没有错误!