• ベストアンサー

SQLServerのストアドで1ヶ月前日付を取得したい

SQLServer2005のストアドプロシージャで、引数に8桁日付(YYYYMMDD)を受け取り、その1ヶ月前の日付を求めたいのですが、 どのようにすればいいですか? (1)DateAdd関数を使用するために、8桁日付を日付形式に変換する。CONVERT関数使用? (2)(1)で求めた日付形式データでDateAddする。 といった流れだとは思うのですが、実際コードではどう書くのかわかりません。 よろしくお願いします。

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

  • ベストアンサー
回答No.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

kuriosprj
質問者

補足

chukenkenkouさん、ご回答ありがとうございます。 大変、参考になりました。 最終的には取得した1ヶ月前日付をtblにupdateしたいのです。 ただしtblの日付項目は日付型じゃないですが。 入出力どちらとも日付型ではないのです。