テーブルの日付を調整するコードブロックがあります。SQL:Function/Procedureによる計算を統合しますか?
dateadd(hh,
case
when
month(planned_start)=1 or
month(planned_start)=2 or
month(planned_start)=11 or
month(planned_start)=12 then -5
when
month(planned_start)=3 then
case
when datepart(hh,planned_start)<6 then -5
else -4
end
else -4
end
,planned_start)
基本的に、私は時差を調整する必要がありますが、SQLの複数の場所で日付を調整する必要があります。今、私はこのコードブロックを約8回繰り返しています。
これを関数またはプロシージャにする方法はありますか?関数に 'planned_start'を送信して計算を実行し、日付を調整するのに必要な '-4または-5'を返しますか?
注: 'planned_start'と時間オフセットはデータの行ごとに異なる可能性があるため、変数を使用するだけでは不十分だとは思いません。
ありがとうございました。ここで
手順コードは**ベンダー固有の** ** - だからp 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –
ああ、申し訳ありません。 「About」に「Microsoft SQLServer2008」と書いてあります。 –