Вот несколько SQL-запросов с использованием функций, работающих со временем в базе данных Oracle:
SELECT SYSTIMESTAMP FROM dual;
Это можно увидеть
SELECT SYSDATE, CURRENT_DATE, SYSTIMESTAMP, CURRENT_TIMESTAMP FROM DUAL
Например, извлеките год, месяц и день с помощью функции ИЗВЛЕЧИТЬ.
SELECT SYSDATE, EXTRACT(YEAR FROM SYSDATE), EXTRACT(MONTH FROM SYSDATE), EXTRACT(DAY FROM SYSDATE) FROM DUAL
Например, используйте функцию ИЗВЛЕЧЕНИЕ для извлечения часов, минут и секунд.
Уведомление:
SELECT SYSTIMESTAMP, EXTRACT(HOUR FROM SYSTIMESTAMP), EXTRACT(minute from SYSTIMESTAMP), EXTRACT(second from SYSTIMESTAMP) FROM DUAL
```
Уведомление:Есть только MONTHS_BETWEEN
эффективный。YEARS_BETWEEN
и DAYS_BETWEEN
Обе эти функции являются недопустимыми.
SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2023-01-01', 'YYYY-MM-DD')) AS MonthsDifference FROM dual;
SELECT LAST_DAY(SYSDATE) AS LastDayOfMonth FROM dual;
SELECT SYSDATE, ROUND(SYSDATE, 'MONTH'), ROUND(TO_DATE('2024-04-10 20:12:30', 'YYYY-MM-DD HH24:MI:SS'), 'MONTH') FROM DUAL;
SELECT TRUNC(SYSDATE, 'YY'), TRUNC(SYSDATE, 'MM'), TRUNC(SYSDATE, 'HH'), TRUNC(SYSDATE, 'mi') FROM DUAL;
Уведомление:TRUNC может быть перехвачен Год, месяц, день, час, минута, но без секунд
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS FormattedDate FROM DUAL;
SELECT TO_DATE('2024-04-20', 'YYYY-MM-DD') AS DateFromString FROM DUAL;
SELECT TO_TIMESTAMP('2024-04-20 12:34:56', 'YYYY-MM-DD HH24:MI:SS') AS TimestampFromString FROM DUAL;
TO_DATE
и TO_TIMESTAMP
Эффект тот же
SELECT TO_DATE('2024-04-20 12:34:56', 'YYYY-MM-DD HH24:MI:SS') AS DateFmt,
TO_TIMESTAMP('2024-04-20 12:34:56', 'YYYY-MM-DD HH24:MI:SS') AS TimestampFmt
FROM DUAL;
SELECT NEW_TIME(SYSDATE, 'AST', 'PST') AS ConvertedTime FROM DUAL;
Все часовые пояса следующие: