• ベストアンサー

SQL Server で 翌月10日を取得する

SQL Server で 翌月10日を取得する方法を教えてください。 isnull(convert(char(10),dateadd(month,1,(dateadd(day,9,DATE))),111),'') as DATE ↑これだと、DATE(月末)の翌月の9日後で、翌月10日も可能なのですが、 当然ながら、DATEが月末とは限らないので。。。 常に10日を固定で表示するにはどうしたら、よいのでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • innoya
  • ベストアンサー率71% (10/14)
回答No.2

こんにちは。 イノ(inno)です。 翌月10日を取得する時は下記のようにします。 DECLARE @Today DATETIME SET @Today = GETDATE() SELECT CONVERT(CHAR(7),DATEADD(MM,1,@Today), 111) + '/10' これが一番簡単です。 @TodayにDATEADD(MM,1,@Today)をして翌月に移動します。 CONVERTを利用して'yyyy/MM/dd'形式に変換して前から7文字を切り取ります。 その後に'/10'をつけて'yyyy/MM/dd'に変更します。 上記の方法はSQL SERVERの全バージョンから使えます。 SQL SERVER 2012ならば「EOMONTH」を使って下記のように記述して取得することができます。 SELECT DATEADD(day, 10, EOMONTH(GETDATE())) 「EOMONTH」はSQL SERVER 2012以上から使えます。

idera_2010
質問者

お礼

お礼が遅くなり、申し訳ございません。 教えていただいた方法で、実現できました。 ありがとうございました。

その他の回答 (1)

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

DATEADD(day, 10, EOMONTH(date))  で、どうですか?  ちなみに、EOMONTH(date [, offset])は、dateを含む月の最終日を返します。offsetの指定により、指定月後の最終日の計算も可能です。  後は、null処理等、摘便付け加えてください。

idera_2010
質問者

お礼

お礼が遅くなり申し訳ございません。 いろいな方法があるんですね。 勉強になりました。 ありがとうございました。

関連するQ&A