你能帮我选择一个特定的下一个月开始的日期吗,例如四月?例如,如果是 Jan 08 2013,应该选择 April 01 2013,如果是 June 08 2013,应该选择 April 01 2014。
谢谢。
你能帮我选择一个特定的下一个月开始的日期吗,例如四月?例如,如果是 Jan 08 2013,应该选择 April 01 2013,如果是 June 08 2013,应该选择 April 01 2014。
谢谢。
我会创建一个日历表,然后你可以简单地做这样的事情:
select
min([Date])
from
dbo.Calendar
where
MonthNumber = 4 and
DayNumber = 1 and
[Date] > getdate()
查询日历表通常比使用日期函数更清晰、更简单、更灵活。您可能还想考虑如果今天是 4 月 1 日会发生什么:您想要今天的日期还是明年的日期?
如果您对 4 月 1 日感兴趣,因为它是一个财政年度的开始,您可以直接将该信息添加到您的日历表中:
select
min([Date])
from
dbo.Calendar
where
IsStartOfFinancialYear = 0x1 and
[Date] > getdate()
使用DATEADD
andDATEPART
函数,就像这个简短的例子:
DECLARE @Date Datetime
SET @Date = '2013.01.08 00:00:00'
SELECT DATEADD(year,
CASE WHEN DATEPART(month, @Date) < 4
THEN 0
ELSE 1 END,
DATEADD(day, -DATEPART(day, @Date) + 1,
DATEADD(month, -DATEPART(month, @Date) + 4, @Date)))