在 SQL 中创建动态日期范围

Create a dynamic date range in SQL

我是 SQL 的新手,正在尝试创建一个基于当月的动态日期 运行ge。例如,如果当前月份是 6 月,则开始日期应为 5 月 1 日,结束日期应为 5 月 31 日,依此类推。代码如下:

开始日期:

DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)

结束日期:

DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, 0)

我不太明白上面代码的意思。但是我 运行 它和输出似乎不正确。我想知道上面的代码是否实现了我的需要。

非常感谢您的帮助!

在SQL服务器中,可以使用eomonth():

select dateadd(day, 1, eomonth(getdate(), -2)) as start_date,
       eomonth(getdate(), -1) as end_date

Here 是一个 db<>fiddle.