Ich möchte dies in Teradata zur Arbeit kommen:Wie Datum/Uhrzeit Komponenten mit einem berechneten Intervall hinzufügen/subtrahieren?
aktualisiert SQL für besseres Beispiel
select
case
when
current_date between
cast('03-10-2013' as date format 'mm-dd-yyyy') and
cast('11-03-2013' as date format 'mm-dd-yyyy')
then 4
else 5
end Offset,
(current_timestamp + interval Offset hour) GMT
Allerdings habe ich einen Fehler von Expected something like a string or a Unicode character blah blah
bekommen. Es scheint, dass Sie das Intervall so zu codieren haben:
select current_timestamp + interval '4' day
Ja, ich weiß, dass ich es in meinem ersten Beispiel fest einprogrammiert, aber das war nur ein berechnetes Ergebnis zu demonstrieren.
Wenn Sie wissen müssen, muss ich alle Daten und Zeiten in ein paar Tabellen in GMT konvertieren, aber ich muss die Sommerzeit berücksichtigen. Ich bin in Eastern, also muss ich 4 Stunden addieren, wenn das Datum innerhalb des DST-Zeitrahmens ist und 5 Stunden sonst addieren.
Ich weiß, ich kann nur separate Update-Anweisungen für jede Periode erstellen und ändern Sie einfach den Wert von 4 bis 5, aber ich möchte meine Abfrage dynamisch und intelligent sein.
Ich stimme Ihnen bei der Verwendung von Intervallen zu. Ich kann mich nie erinnern, wie man sie benutzt und muss oft auf einen Spickzettel verweisen. –
Ich möchte den Intervallwert nicht hartcodieren, wie ich in meiner Frage erwähnt habe. Ich habe meine Frage mit einem besseren SQL-Beispiel aktualisiert. Sehen Sie, ob Sie es zur Arbeit bringen können. – oscilatingcretin
Ahhhhaa! Ich habe es herausgefunden. Wird als Antwort posten. – oscilatingcretin