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ść.