H2和SQL Server中的DateAdd / DateDiff函数

时间:2016-05-09 18:07:22

标签: sql-server date h2 datediff dateadd

我正在编写一个munit测试用例并使用H2内存实例模拟我的真实SQL Server数据库表。

我的查询有日期条件来返回上个月的记录,所以我一直在寻找适用于SQL Server和H2的东西。最后,我发现下面的语法在两者中都有效。

select 
    DATEADD(MONTH, DATEDIFF(MONTH, '1900-01-01', GETDATE()) - 1, '1900-01-01');

在SQL Server中,它正确地给了我上个月的开始日期,但在H2中,它给了我当月的开始日期。如果将-1更改为2,则H2可以正常运行,但SQL Server会返回错误的日期。

有人可以帮助我如何获得正确的语法吗?

与上个月的最后一天相同的问题 -

select 
    DATEADD(D, -1, DATEADD(MONTH, DATEDIFF(MONTH, '1900-01-01', GETDATE()), '1900-01-01'))

0 个答案:

没有答案