dポイントプレゼントキャンペーン実施中!

SQL Server で 翌月10日を取得する方法を教えてください。

isnull(convert(char(10),dateadd(month,1,(dateadd(day,9,DATE))),111),'') as DATE

↑これだと、DATE(月末)の翌月の9日後で、翌月10日も可能なのですが、

当然ながら、DATEが月末とは限らないので。。。

常に10日を固定で表示するにはどうしたら、よいのでしょうか?

よろしくお願いいたします。

A 回答 (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以上から使えます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/04/07 20:35

DATEADD(day, 10, EOMONTH(date))



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

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

お礼日時:2014/04/07 20:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す