如何从json提取的日期在mysql中生成timestamp类型的虚拟列?

如何从json提取的日期在mysql中生成timestamp类型的虚拟列?,mysql,sql,json,database,json-extract,Mysql,Sql,Json,Database,Json Extract,我的mysql DB表BLAH中有一个json类型的字段LOREM LOREM有一个属性createdOn,其格式如下:2020-03-05T04:30:00.000+0000 (这是通过运行以下命令检索的值: 从BLAH中选择LOREM->'$.createdOn;) 我正在尝试为created on创建一个虚拟生成列,以便查询变得更容易一些。我尝试在创建表时将其放入ddl中: CREATED\u时间戳(3)始终生成为(CAST(LOREM->>“$.createdOn”AS DATETIME

我的mysql DB表BLAH中有一个json类型的字段LOREM

LOREM有一个属性createdOn,其格式如下:
2020-03-05T04:30:00.000+0000
(这是通过运行以下命令检索的值:

从BLAH中选择LOREM->'$.createdOn;

我正在尝试为created on创建一个虚拟生成列,以便查询变得更容易一些。我尝试在创建表时将其放入ddl中:

CREATED\u时间戳(3)始终生成为(CAST(LOREM->>“$.createdOn”AS DATETIME))虚拟,
但在插入条目时,会出现错误:

1292截断了不正确的日期时间值:“2020-03-05T04:30:00.000+0000”

我尝试将列时间戳精度从3更改为6,但没有成功。 我也试过了

在始终生成为(timestamp(CAST(LOREM->>“$.createdOn”AS DATETIME))虚拟的时间戳(3)上创建,但得到相同的错误

你知道为什么会发生这种情况,我应该如何解决吗

从MySQL 8.0.19开始,在向表中插入时间戳和日期时间值时,可以指定时区偏移量。偏移量附加到datetime文字的日期部分,不带空格,并使用与设置时区系统变量相同的格式,但以下情况除外:

  • 对于小于10的小时值,需要前导零
  • 值'-00:00'被拒绝
  • 不能使用“EET”和“亚洲/上海”等时区名称;'系统“”也不能在此上下文中使用

2020-03-05T04:30:00.000+0000!=2020-03-05T04:30:00.000+00:00