電子書籍の厳選無料作品が豊富!

SQLServer2005のストアドプロシージャで、引数に8桁日付(YYYYMMDD)を受け取り、その1ヶ月前の日付を求めたいのですが、
どのようにすればいいですか?

(1)DateAdd関数を使用するために、8桁日付を日付形式に変換する。CONVERT関数使用?
(2)(1)で求めた日付形式データでDateAddする。

といった流れだとは思うのですが、実際コードではどう書くのかわかりません。

よろしくお願いします。

A 回答 (1件)

最終的に得たい形式等が不明ですが。

。。
例を示しておきます。

declare @yyyymmdd char(8);
select @yyyymmdd = '20070930';
select
convert(varchar(10),
dateadd(month,-1,
substring(@yyyymmdd,1,4)+'-'
+substring(@yyyymmdd,5,2)+'-'
+substring(@yyyymmdd,7,2)
),
20);
go

この回答への補足

chukenkenkouさん、ご回答ありがとうございます。
大変、参考になりました。

最終的には取得した1ヶ月前日付をtblにupdateしたいのです。
ただしtblの日付項目は日付型じゃないですが。

入出力どちらとも日付型ではないのです。

補足日時:2007/10/02 23:33
    • good
    • 0

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

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