こんにちは私は到着日と出発日が一致する一時テーブルを持っています。到着と出発の間の3日ごとに更新する必要があります。 は、ここに私の出力であるSQLは3日ごとに更新されます
私が考えることができる唯一の方法は3の倍数とDATEADDを使用することですが、到着と出発の間の日が数ヶ月または何年もすることができ、私はセットUPDATEが必要3日おきに何日にもかかわらず
UPDATE #Report SET "Service" = CASE
WHEN Date = DATEADD(DAY,3,CAST(FLOOR(CAST(Arr AS money)) AS Datetime)) THEN 'Full Service'
WHEN Date = DATEADD(DAY,6,CAST(FLOOR(CAST(Arr AS money)) AS Datetime)) THEN 'Full Service'
WHEN Date = DATEADD(DAY,9,CAST(FLOOR(CAST(Arr AS money)) AS Datetime)) THEN 'Full Service'
WHEN Date = DATEADD(DAY,12,CAST(FLOOR(CAST(Arr AS money)) AS Datetime)) THEN 'Full Service'
WHEN Date = DATEADD(DAY,15,CAST(FLOOR(CAST(Arr AS money)) AS Datetime)) THEN 'Full Service'
WHEN Date = DATEADD(DAY,18,CAST(FLOOR(CAST(Arr AS money)) AS Datetime)) THEN 'Full Service'
WHEN Date = DATEADD(DAY,21,CAST(FLOOR(CAST(Arr AS money)) AS Datetime)) THEN 'Full Service'
...
etc
ELSE 'Restricted Service' END
誰も解決策を考えてもいいですか?
UPDATE #Report
SET Service = (CASE WHEN DATEDIFF(day, Arr, Date) % 3 = 0
THEN 'Full Service'
ELSE 'Restricted Service'
END);
私はmoney
への変換は、クエリのバージョンでやっている測深することはできません。
ありがとうオリジナルの到着日は時間を含めても良い方法がある場合は私に知らせてください(つまり:09:00:00)私の "Date"カラムは真夜中に設定されていましたので、Arrをmoneyに変換してからdatetimeに戻って00:00:00.000に戻しました:) – Kate
私よりも良いソリューションです! @Kate。 – Kate
。 。 'date'に変換するだけで時間コンポーネントを削除することができます。 –