sql - 在 H2 数据库上插入当前日期和时间
问题描述
我想在我的 H2 数据库中插入带有特定时间的当前日期
我这样做:
INSERT INTO PUBLIC.PROJECT(ID, LIBELLE, DESCRIPTION, STATUT, DATE_CREATION, DATE_MODIFICATION, USER_CREATEUR_ID, REFERENT_ID, DATE_DEBUT, DATE_FIN, TYPE, STATUT_PROJET) VALUES
(25001, 'Projet 1', NULL, 'INITIEE', CURRENT_DATE, CURRENT_DATE, NULL, 3, current_date -2 + time '23:00', current_date , NULL, NULL);
我有这个错误:
不可能的 danalyser {0} 常量 {1} 无法解析 {0} 常量 {1};SQL 语句:
怎么了 ?
解决方案
H2 只能从 1.4.198 版本开始解析非标准时间文字TIME '23:00'
(请注意,这是一个 beta 质量版本,请使用一些较新的版本来代替它)。
如果您需要使用一些旧版本,例如 1.4.197,请使用标准文字TIME '23:00:00'
。如果可以升级,最好还是使用标准文字。
请注意,整个结构current_date -2 + time '23:00'
很奇怪。旧版本的 H2 可能需要它,但如果您决定升级,请使用更正常的日期时间算法和间隔,CURRENT_DATE - INTERVAL '2' DAY + TIME '23:00:00'
而不是完全非标准的东西。符合标准的表达式应该是CAST(CURRENT_DATE AS TIMESTAMP) - INTERVAL '2' DAY + INTERVAL '23' HOUR
,但看起来不太好。
推荐阅读
- c++ - 用于 localhost:Port 的 MSVC++ 中的 TLS 客户端
- powershell - 如何将其值中包含连字符的$变量作为参数传递给另一个函数
- javascript - 如何通过将鼠标悬停在 sigmaJs 中的当前节点上仅对当前节点和连接节点绘制标签为真?
- razor - DB2 razor 中的列或参数定义无效
- javascript - triggerHandler 'rightnow' 没有在页面刷新时更新
- wijmo - Wijmo Flexgrid 如何获取粘贴的行数/获取粘贴数据的行的索引
- javascript - 如何检索当前远程脚本的 URL?
- python - 更新数据集成逻辑
- r - 在数字数据的字符串中嵌入 nul
- google-app-maker - Google 应用制作工具中的驱动器选择器停止工作