1111 читали · 3 года назад
Неявные ошибки в SQL запросах
Проверяя работу наших учеников курса "SQL. Базы данных. ORACLE", и даже курса "Программирования в PL/SQL (ORACLE)" иногда встречаю следующее использование функции to_date, которое содержит ошибку. И сейчас напишу почему. Итак, вот конструкция, содержащая ошибку: to_date(sysdate, 'dd.mm.yyyy') Функция to_date служит для преобразования ТЕКСТА в дату согласно указанной маске, а в примере выше функции на вход даётся итак дата (sysdate ведь дата, только ещё и со временем). Во-первых, неразумно из итак...
186 читали · 1 год назад
Функция EXTRACT в Oracle SQL: Извлекаем дату по частям
Работа с датами в Oracle SQL — это не просто привычные sysdate и timestamp, а целый мир встроенных инструментов. Один из таких — функция EXTRACT, которая умеет доставать из даты или времени конкретные компоненты: год, месяц, день и даже минуты с секундами. 🚀 Допустим, у нас есть дата '2020-03-13'. Хотим узнать, какой это год: Результат: 2020 SELECT EXTRACT(YEAR FROM DATE '2020-03-13') FROM dual; А если нужен месяц? Не проблема: Результат: 3 SELECT EXTRACT(MONTH FROM DATE '2020-03-13') FROM dual; Теперь немного магии с текущей датой...
405 читали · 4 года назад
Курс SQL. Базы данных. ORACLE. Преобразование данных. Функция to_date
Здравствуй, уважаемый читатель! На прошлом уроке мы начали писать простые запросы и столкнулись с проблемой неявного преобразования текста в дату. Чем это опасно и как использовать даты в запросе правильно, я расскажу сегодня. Итак, мы поняли, что при написании дат в SQL–запросах в виде текста (то есть дат в кавычках), перед выполнением SQL–запросов, даты из текста будут автоматически распознаны. Текст будет неявно преобразован в дату. Неявно, означает, что без явной нашей команды на преобразование...
2311 читали · 7 лет назад
Печеньки от Oracle. Иерархический запрос
В таблице одна строка. Как извлечь из нее 10 строк? Как сформировать последовательность? Календарь? Побочные "плюшки" иерархического SQL запроса в Oracle. Таблица dual Если нам нужно получить SQL запросом текущую дату, то в Oracle мы пишем: select sysdate from dual ; 31.03.19 В некоторых диалектах SQL для скаляра (текущая дата - скаляр) можно записать без from dual, но Oracle требует полноты минимальной конструкции выражения для чтения данных: select <список столбцов> from <список таблиц> Служебная таблица dual как раз и наличествует в системе для формализации выборок "из ниоткуда"...