Hallo Ich habe eine temporäre Tabelle von Ergebnissen mit einem Ankunftsdatum und Abreisedatum, die ich auf jeden dritten Tag zwischen der Ankunft und Abreise aktualisieren muss. Hier ist mein Ausgangsql update jeden dritten Tag
Die einzige Art, wie ich denken kann, ist DATEADD mit Multiples von 3 zu verwenden, aber die Tage zwischen An- und Abreise können Monate oder sogar Jahre sein, so brauche ich ein Update, das gesetzt jeden dritten Tag, unabhängig davon, wie viele Tage
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
Kann jemand denken Sie an eine Lösung bitte?
die ursprüngliche Ankunftsdatum, die Zeit enthalten (zB: 09:00:00), meine "Date" -Spalte wurde auf Mitternacht gesetzt, also konvertierte Arr in Geld und dann zurück zu Datetime, um als 00: 00: 00.000 zurückzukommen, also stimmte es überein :) – Kate
Bessere Lösung als meine, aber danke! – Kate
@Kate. . . Sie können einfach zu "Datum" konvertieren, um die Zeitkomponente zu entfernen. –