chciałbym uzyskać to do pracy w Teradata:Jak dodawać/odejmować składniki daty/czasu za pomocą obliczonego przedziału czasu?
Aktualizacja SQL dla lepszego przykładu
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
jednak otrzymuję błąd Expected something like a string or a Unicode character blah blah
. Wydaje się, że trzeba zakodować interwał takiego:
select current_timestamp + interval '4' day
Tak, wiem, że ustalony w moim pierwszym przykładzie, ale to było tylko wykazać obliczony wynik.
Jeśli musisz wiedzieć, muszę zamienić wszystkie daty i godziny w kilku tabelach na GMT, ale muszę uwzględnić czas letni. Jestem na wschodzie, więc muszę dodać 4 godziny, jeśli data jest w terminie DST i dodać 5 godzin w przeciwnym razie.
Wiem, że mogę po prostu utworzyć osobne instrukcje aktualizacji dla każdego okresu i zmienić odpowiednio wartość z 4 na 5, ale chcę, aby moje zapytanie było dynamiczne i inteligentne.
Zgadzam się z Państwem w sprawie wykorzystania odstępów czasu. Nigdy nie pamiętam, jak z nich korzystać i często muszę się odwoływać do kartki. –
Nie chcę kodować wartości interwałów, o których pisałem w moim pytaniu. Zaktualizowałem moje pytanie z lepszym przykładem SQL. Sprawdź, czy możesz go uruchomić. – oscilatingcretin
Ahhhhaa! Rozgryzłem to. Zostanie opublikowana jako odpowiedź. – oscilatingcretin