2017-08-23 7 views
2

翌年の月の15日を取得するSQLクエリ。探しているSQL次の月の15日

今日

select getdate() = 2017-08-23 17:05:24.143 

:2018年8月15日〇時00分00秒

私は今日から一年を取得する方法を知っている:

select dateadd(year,1,datediff(day,0,getdate())) 

私はどのように知っています今月の初めに:

SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) 

しかし、私は2つを組み合わせるのに問題があります。

答えて

5

あなたは、SQL Serverのバージョン2012および上記のためdatefrompartsを使用することができます。

select datefromparts(year(getdate())+1,month(getdate()),15) 
2

現在の日付をコードの先頭に切り捨てますが、12ヶ月(したがって、1年)を追加して14日を追加します。

select dateadd(day,14,dateadd(month, 12+datediff(month, 0, getdate()), 0)) 
1
SELECT DATEADD(month, DATEDIFF(month, 0, DATEADD(year, 1, DATEDIFF(day, 0, GETDATE())), 0) 
+0

が動作していないが - DATEDIFF関数は3引数(複数可)が必要です。 – Jay

1

Vamsi Prabhala's回答が受け入れられる必要があります。

しかし、Calendar Tableを作成することを検討する必要があります。これは、一般的な日付の作業を大幅に簡素化するためです。ここで

は、あなたが望む結果を生み出すかなり単純クエリです:

select * from Calendar C where C.year = datepart(year, getdate()) + 1 
     and C.day_of_month = 15 and C.month = datepart(m, getdate()) 

Rextester Demo

+0

デモをありがとう – Jay

関連する問題