- ベストアンサー
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日を固定で表示するにはどうしたら、よいのでしょうか? よろしくお願いいたします。
- みんなの回答 (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以上から使えます。
その他の回答 (1)
- mitoneko
- ベストアンサー率58% (469/798)
DATEADD(day, 10, EOMONTH(date)) で、どうですか? ちなみに、EOMONTH(date [, offset])は、dateを含む月の最終日を返します。offsetの指定により、指定月後の最終日の計算も可能です。 後は、null処理等、摘便付け加えてください。
お礼
お礼が遅くなり申し訳ございません。 いろいな方法があるんですね。 勉強になりました。 ありがとうございました。
お礼
お礼が遅くなり、申し訳ございません。 教えていただいた方法で、実現できました。 ありがとうございました。