Jakub Panas

Jakub Panas Konsultant
techniczny,
IPR-Insights

Temat: różnica pomiędzy polami typu timestamp

Witam,
mam dwa pola, w których przechowywana jest wartość typu timestamp.
potrzebuję wyznaczyć wartość minimalną, maksymalną i średnią w określonym przedziale czasowym.

Jak zrobię:
TIMESTAMPDIFF(2,CHAR(DATA_B - DATA_A))
to zwraca mi wartość w sekundach, ale dla mnie to za mała precyzja.

jak zrobię
TIMESTAMPDIFF(1,CHAR(DATA_B - DATA_A))
to zwraca błąd: A datetime arithmetic operation or a datetime scalar function has a result that is not within the valid range of dates.. SQLCODE=-183, SQLSTATE=22008, DRIVER=4.18.60

Jak zrobię
DATA_B - DATA_A
to zwraca mi wartość, która nijak nie daje przeliczyć się na normalne jednostki - wydaje mi się, że nie jest w milisekundach.

Różnica może być od milisekund do kilkudziesięciu dni, więc najlepszy byłby wynik w sekundach z częścią ułamkową lub milisekundach.
Jakub Panas

Jakub Panas Konsultant
techniczny,
IPR-Insights

Temat: różnica pomiędzy polami typu timestamp

DATA_B - DATA_A
to zwraca mi wartość, która nijak nie daje przeliczyć się na normalne jednostki
- wydaje mi się, że nie jest w milisekundach.
różnica jest liczbą w formacie DDHHMMSS.mmmmmm
gdzie DD - dni, HH - godziny, MM - minuty, SS - sekundy, mmmmmm - milisekundy.
Usuwane są zera wiodące i AVG daje zupełnie dziwny wynik, który mnie zmylił.

Skorzystałem z funkcji ts_diff_works z książki "SQL Cookbook" Graeme Birchalla.
AVG zaczął działać poprawnieTen post został edytowany przez Autora dnia 10.02.15 o godzinie 09:15



Wyślij zaproszenie do