0

翌月の初め、たとえば4月の日付を選択するのを手伝っていただけませんか。たとえば、2013年1月8日の場合は、2013年4月1日を選択する必要がありますが、2013年6月8日の場合は、2014年4月1日を選択する必要があります。

ありがとう。

4

2 に答える 2

1

カレンダーテーブルを作成すると、次のように簡単に実行できます。

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()
于 2013-01-08T16:13:18.747 に答える
0

次の短い例のようにDATEADD、と関数を使用します。DATEPART

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)))
于 2013-01-08T16:12:17.717 に答える