如何在 SQL 服务器中找到当年的季度、半年和年的最后一天?
How to find the last day of a Quarter, Half Year and Year of current Year in SQL Server?
我想在 SQL 服务器中获取当年的季度、半年和年的最后一天。假设当前日期为 2020 年 5 月 12 日,季度结束日期为 2020 年 6 月 30 日,半年度日期为 2020 年 6 月 30 日,年度结束日期为 2020 年 12 月 31 日。
我可以使用 DATEADD 和 DATEDIFF 内置函数获取季度和年度的最后日期,但无法获取半年的最后日期。
任何帮助,将不胜感激。
因为你标记了 datediff
,这是一个使用 dateadd
/ datediff
的解决方案
; with dates as
(
select [date] = convert(date, '2020-01-01')
union all
select [date] = dateadd(month, 1, [date])
from dates
where [date] < '2020-12-01'
)
select [date],
dateadd(quarter, datediff(quarter, 0, [date]) + 1, -1) as [Last Day of Quarter],
dateadd(quarter, datediff(quarter, 0, [date]) / 2 * 2 + 2, -1) as [Last Day of Half Year],
dateadd(year, datediff(year, 0, [date]) + 1, -1) as [Last Day of Year]
from dates
我想在 SQL 服务器中获取当年的季度、半年和年的最后一天。假设当前日期为 2020 年 5 月 12 日,季度结束日期为 2020 年 6 月 30 日,半年度日期为 2020 年 6 月 30 日,年度结束日期为 2020 年 12 月 31 日。
我可以使用 DATEADD 和 DATEDIFF 内置函数获取季度和年度的最后日期,但无法获取半年的最后日期。 任何帮助,将不胜感激。
因为你标记了 datediff
,这是一个使用 dateadd
/ datediff
; with dates as
(
select [date] = convert(date, '2020-01-01')
union all
select [date] = dateadd(month, 1, [date])
from dates
where [date] < '2020-12-01'
)
select [date],
dateadd(quarter, datediff(quarter, 0, [date]) + 1, -1) as [Last Day of Quarter],
dateadd(quarter, datediff(quarter, 0, [date]) / 2 * 2 + 2, -1) as [Last Day of Half Year],
dateadd(year, datediff(year, 0, [date]) + 1, -1) as [Last Day of Year]
from dates