SYSDATE в Oracle SQL — как получить текущую дату и время

🟢SYSDATE в Oracle SQL. Введение

Нужно узнать текущую дату? Сравнить запись с сегодняшним днём? Отфильтровать заказы за последние 7 дней? Всё это делается через функцию SYSDATE.
Это встроенная функция Oracle, которая всегда возвращает дату и время сервера базы данных.


🔤 Написание

sql
SELECT SYSDATE FROM dual;

Возвращает текущую дату и время, например: 18-JUN-25 11:52:43


🔄 Где часто используется

  • Проверка актуальности данных (WHERE update_date >= SYSDATE - 7)

  • Автоматическая вставка даты при создании записи

  • Расчёт разницы дат

  • Создание отчётов по текущему месяцу, дню или году

  • Условия в триггерах, процедурах, пакетах


🧪 10 Примеров использования SYSDATE с пояснениями

1️⃣ Получить текущую дату и время

sql
SELECT SYSDATE FROM dual;

Самый базовый вызов функции.


2️⃣ Вставка записи с датой сейчас

sql
INSERT INTO logs (event_time, message)
VALUES (SYSDATE, 'Пользователь вошёл в систему');

Автоматическое проставление времени события.


3️⃣ Фильтрация за последние 7 дней

sql
SELECT * FROM orders
WHERE order_date >= SYSDATE - 7;

Показываем только свежие заказы.


4️⃣ Расчёт возраста клиента

sql
SELECT name, TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date) / 12) AS age
FROM customers;

Сравнение текущей даты с датой рождения.


5️⃣ Ограничение по времени в течение дня

sql
SELECT * FROM sessions
WHERE login_time >= TRUNC(SYSDATE)
AND login_time < TRUNC(SYSDATE) + 1;

Выборка всех сессий за сегодня.


6️⃣ Добавление дней к текущей дате

sql
SELECT SYSDATE + 3 AS in_three_days FROM dual;

Дата через три дня.


7️⃣ Разница между двумя датами

sql
SELECT order_id, SYSDATE - order_date AS days_passed
FROM orders;

Сколько дней прошло с момента заказа.


8️⃣ Проверка окончания действия

sql
SELECT * FROM subscriptions
WHERE expiry_date <= SYSDATE;

Ищем уже истёкшие подписки.


9️⃣ Форматирование SYSDATE

sql
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_now
FROM dual;

Удобный вид для вывода в отчётах и логе.


🔟 Группировка по дню

sql
SELECT TRUNC(SYSDATE) AS today, COUNT(*) AS total
FROM visits
WHERE visit_time >= TRUNC(SYSDATE)
GROUP BY TRUNC(SYSDATE);

Сколько визитов сегодня.


🧩 Заключение

SYSDATE — это основа всей работы со временем в Oracle SQL. Без неё не обходится ни один отчёт, лог или фильтр. Она берёт текущую дату и время с точки зрения сервера базы данных, а не пользователя.

💡 Запомни:

  • SYSDATE возвращает DATE (дата + время)

  • Используется в условиях, фильтрах, расчётах, логике

  • Комбинируется с TRUNC, TO_CHAR, MONTHS_BETWEEN, арифметикой дат

  • Обновляется автоматически при каждом вызове


🔜 Следующая статья:

MOD в Oracle SQL — как использовать остаток от деления для парности, групп и циклов


Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии