如何像 sql server 一样在 h2 中使用 getDate()

Posted

技术标签:

【中文标题】如何像 sql server 一样在 h2 中使用 getDate()【英文标题】:How to use getDate() in h2 as like sql server 【发布时间】:2019-05-15 06:23:47 【问题描述】:

我正在通过 Junit 测试用例测试已经开发的应用程序,在生产中使用 SQL 服务器,但在执行测试用例时我们使用嵌入式 h2 数据库。 并且某些 SQL 服务器规范在 h2 中不起作用(例如:conditional queriesgetDate()DATEPART、.......)任何人都可以帮助我如何进一步解决此类问题我的 JUnit 测试 与 h2 DB

SQL SERVER: select * from getDate() -: 2006-12-30 00:38:54.840
h2 DB :     select * from getDate() -: 2006-12-30

在执行脚本在 h2 数据库中执行的测试用例并作为逻辑的一部分时,我将 getdate() 中的值解析为 2006-12-30 00:38:54.840 的 SimpleDate 格式,我得到 2006-12-30 的解析异常无法解析。

提前致谢

【问题讨论】:

【参考方案1】:

要在 H2 中使用 getDate,只需在使用带有 getDate() 的查询之前运行以下查询

drop alias if exists getDate;

create alias getDate as '
    java.util.Date getDate() 
        return new java.util.Date();
    
    ';

【讨论】:

【参考方案2】:

您可以使用 H2 数据库中内置的用户定义函数和存储过程。

【讨论】:

以上是关于如何像 sql server 一样在 h2 中使用 getDate()的主要内容,如果未能解决你的问题,请参考以下文章

如何像调度程序一样将大数据从 MongoDB 导入 SQL Server

我们如何使用 H2 测试涉及日期到字符串转换的 SQL Server 代码?

请问在SQLserver 中如何指定一个数据库类型的变量?就是说里面引用的表前的数据库前缀可以像变量一样改变

Presto SQL 是不是像 SQL Server 一样支持使用 CTE 进行递归查询?例如员工等级

Snowflake 中的存储过程能否提供一个表值输出,就像我们在 SQL Server 中得到的一样

Access 可以像 SQL Server 一样生成 CREATE TABLE 脚本代码吗?