W Oracle Database możemy użyć następującej techniki, aby zwrócić datę z wartości uniksowego znacznika czasu.
Sygnatura czasowa uniksa (znana również jako czas epoki uniksowej, czas uniksowy lub czas POSIX) to liczba sekund, które upłynęły od godziny 00:00:00 w czwartek, 1 stycznia 1970 r., uniwersalny czas koordynowany (UTC).
Przykład
Oto przykład konwersji znacznika czasu uniksowego na DATE wartość:
SELECT
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL; Wynik:
18-APR-22
Tutaj używamy TO_DATE() funkcja do skonstruowania daty 1970-01-01. Następnie dodajemy nasz uniksowy znacznik czasu do tej daty, aby uzyskać nasz wynik. W tym przypadku używamy NUMTODSINTERVAL() przekonwertować uniksowy znacznik czasu na interval wartość. Wynik to DATE wartość.
Pobierz datę i godzinę
Możemy użyć TO_TIMESTAMP() funkcja wyprowadzająca timestamp wartość:
SELECT
TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL; Wynik:
18-APR-22 10.31.13.000000 PM
Innym sposobem jest to:
SELECT TO_CHAR(
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ),
'YYYY-MM-DD HH24:MI:SS'
)
FROM DUAL; Wynik:
2022-04-18 22:31:13
Tutaj używamy TO_CHAR() funkcja do wyprowadzenia wyniku zwróconego przez TO_DATE() w naszym preferowanym formacie. Ta funkcja zwraca swój wynik jako VARCHAR2 wartość.