Sql 插入到OrientDB时发生日期时间转换错误

Sql 插入到OrientDB时发生日期时间转换错误,sql,debugging,datetime,insert,orientdb,Sql,Debugging,Datetime,Insert,Orientdb,使用以下命令转换日期“2014-03-09T02:42:09.893”时出错 格式:yyyy-MM-dd'HH:MM:ss.SSS 这里的错误类型是com.orientechnologies.orient.core.exception.OQueryParsingException 我使用以下方法设置日期时间格式: ALTER DATABASE DATETIMEFORMAT yyyy-MM-dd'T'HH:mm:ss.SSS 此外,我知道这是Orient与我使用的节点API之间的错误,因为这在控

使用以下命令转换日期“2014-03-09T02:42:09.893”时出错 格式:yyyy-MM-dd'HH:MM:ss.SSS

这里的错误类型是
com.orientechnologies.orient.core.exception.OQueryParsingException

我使用以下方法设置日期时间格式:

ALTER DATABASE DATETIMEFORMAT yyyy-MM-dd'T'HH:mm:ss.SSS
此外,我知道这是Orient与我使用的节点API之间的错误,因为这在控制台中也会失败:

插入用户(“设置”、“接受条款”、“活动计数”, “appFirstUseDate”、“生日”、“电子邮件”、“设备”、“feedOption”, “followerCount”、“followerCount”、“FollowerFeedLastReadat”, “性别”、“目标”、“身高单位”、“身高1”、“身高2”, “KitchenskingBadgesseen”、“lastRatePrompt”、“lastVersionUsed”、“level”, “NumReferals”、“平台”、“popularFeedLastReadAt”、“postCount”, “请参阅MburgerInStructions”、“请参阅RatePrompt”、“stream”、“timezone”, “取消订阅工作电子邮件”、“用户名”、“重量”、“重量单位”, “createdAt”、“updatedAt”、“objectId”、“ACL”、“sessionToken”)值 ({uuuu type:“指针”,“类名:“设置”,“objectId:“K9X5P470hF”}, 正确,10,{uuuu type:“Date”,“iso:“2014-03-09T03:37:53.270Z”}, {“日期”,“iso”:“2000-03-29T00:00:00.000Z”}, "REMOVED@gmail.com", {"1":[6,8,4]}, 1, 0, 0, {“_type”:“Date”,“iso”:“2014-03-12T00:32:11.245Z”},2,2,1,5,3, [“活动”、“日程安排”、“findfriends”、“日志”、“共享”、“训练/新”、“个人资料/l8QOwljKWh”、“编辑个人资料”、“进度”、“训练/今天”], {“日期”,“iso”:“2014-04-08T22:23:47.799Z”},“2.4.3”,2,0,1, {“_type”:“Date”,“iso”:“2014-04-08T22:23:45.070Z”},10,true,true, “b”,“美国/哈瓦那”,真实,“hannah00329”,128,1, “2014-03-09T02:42:09.893”、“2014-04-08T22:43:27.086”、“l8QOwljKWh”, {“*”:{“读”:真},“l8QOwljKWh”:{“读”:真,“写”:真}, “t7h4bpx5ri8oyd3vfdt1l7e0b”)

同样的错误:

错误: com.orientechnologies.orient.core.exception.OQueryParsingException: 使用以下命令转换日期“2014-03-09T02:42:09.893”时出错 格式:yyyy-MM-dd'HH:MM:ss.SSS

大多数其他日期时间都可以工作,但由于某种原因,每10000个日期时间中就有1个会出现此错误

我表中的其他日期时间看起来完全相同:

2013-06-28T04:50:35.717
2013-07-03T08:16:10.713
2012-12-27T19:56:52.030
编辑:

经进一步调查,3月9日下午2点似乎是世界末日

SUCCESS:
2013-06-28T04:50:35.717Z
2013-07-03T08:16:10.713Z
2012-12-27T19:56:52.030Z

ERROR:
2014-03-09T02:42:09.893Z
2014-03-09T02:11:49.764Z
2014-03-09T02:02:43.987Z
2014-03-09T02:10:39.408Z
2014-03-09T02:37:10.196Z
2014-03-09T02:40:46.492Z
2014-03-09T02:22:26.589Z
编辑:

以下是我的OrientDB设置

--------------------------------+----------------------------------------------------+
 NAME                           | VALUE                                              |
--------------------------------+----------------------------------------------------+
 Name                           | null                                               |
 Version                        | 9                                                  |
 Date format                    | yyyy-MM-dd                                         |
 Datetime format                | yyyy-MM-dd HH:mm:ss                                |
 Timezone                       | America/Toronto                                    |
 Locale Country                 | US                                                 |
 Locale Language                | en                                                 |
 Charset                        | UTF-8                                              |
 Schema RID                     | #0:1                                               |
 Index Manager RID              | #0:2                                               |
 Dictionary RID                 | null                                               |
--------------------------------+----------------------------------------------------+

2014-03-09T02:00:00->2014-03-09T03:00:00
在合并夏时制(DST)时不存在

因为在使用DST时,特定的时间是不可能的,所以错误在于将数据从允许它的数据库传输到不允许它的数据库。Parse之所以允许这样做,是因为他们使用协调世界时(UTC),而协调世界时不随DST而改变

OrientDB中的修复程序如下所示:

-- set timezone to utc
ALTER DATABASE TIMEZONE UTC

你能显示你的时区和区域设置吗?从控制台使用“info”命令。@Lvca我忘记响应,但我添加了信息。这是迄今为止我遇到的最奇怪的错误:\n我同意,非常奇怪,特别是因为我们完全使用标准JavaAPI来实现这一点。我发行了一期新杂志,以便更好地跟踪: