#24. Функции для даты/времени (SYSDATE, TO_DATE, LAST_DAY, ADD_MONTHS, EXTRACT, TRUNC) | Основы SQL
В сегодняшнем видео рассмотрим функции SQL, необходимые для работы с датой и временем.
00:00 - Вступление
00:27 - Получение текущей системной даты и времени (функция SYSDATE)
01:05 - Преобразовать строку в дату (функция TO_DATE)
01:59 - Получить последний день месяца (функция LAST_DAY)
02:28 - Добавить к дате N-ое количество месяцев (функция ADD_MONTHS)
02:57 - Извлечь из даты год, квартал, месяц (функция EXTRACT)
03:14 - Получить из даты первый день года, первый день квартала, первый день месяца, первый день недели (функция TRUNC)
Команды SQL, упоминаемые в видео, доступны по ссылке: pastebin.com/dJ44CnjW
Ссылка на домашнее задание: pastebin.com/raw/JjWPsdvM
Предложить новую тему для видео: vdsr7ufo2in.typeform.com/to/H...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Также напоминаю. В рамках данного курса действует группа в Телеграм, в которой я в режиме онлайн отвечаю на все вопросы участников, помогаю по ходу обучения.
Вход в группу свободный, по ссылке приглашению (указана ниже). Ограничений по количеству участников на данный момент нет.
В указанной группе задавайте абсолютно любые вопросы, в рамках нашего обучения. Посмотрели видео, попробовали повторить. Получилось - отлично. Что-то не вышло, пишите вопрос в группу. Всем отвечу и помогу.
Ссылка на группу в Telegram: t.me/joinchat/LlHDMBmN0SAxM5_...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
★ Дорогие друзья! Если вам нравится, что я делаю, и вы хотите поддержать проект материально, ссылка: www.donationalerts.com/r/exce...
★ Давайте дружить:
Facebook | / excelstore.pro
Вконтакте | ExcelStore
Telegramm | t.me/ExcelStore
#ОбучениеSQL #КурсыSQL #УрокиSQL #КухарьМаксим #ExcelStore
Пікірлер: 46
К каждому уроку прилагаю домашнее задание (ссылка под видео). Делать задания или нет - исключительно на ваше усмотрение. Если будут какие-либо вопросы по выполнению домашнего задания, то: 1. Ссылка на предыдущие уроки: kzread.info/head/PLKl9v2TQvIkq4i_hZwZ1PmobxJSkIGwBf 2. Под видео ссылка на нашу группу в Телеграм, где вы всегда можете задать интересующие вас вопросы.
Огромное спасибо Максим!!! Очень информативный и полезный курс👍 Жаль, что невозможно больше одного лайка поставить. Материал подан кратко и четко, без воды. Супер 👍
@ExcelStore
2 ай бұрын
Спасибо за отзыв!
Прошел за 1 день, емко и понятно, для освежения знаний самое то. Спасибо!
Большое спасибо! Все очень понятно, для освоения базовых знаний супер-наглядно!!! До этого читала книгу, скачивала тренажер, но все не то. Этот курс идеален для начала погружения. Максим, спасибо Вам!
Большое спасибо!!! Отличный, ёмкий и понятный курс.
Спасибо за курс)
@ExcelStore
Жыл бұрын
Был рад помочь!
Отличный курс, всё очень понятно и интересно! Максим, огромное спасибо за ваш труд!
@ExcelStore
2 жыл бұрын
Спасибо, Павел! Рад, что курс приносит пользу.
Этот курс прекрасен! Большое Вам спасибо!
@ExcelStore
2 жыл бұрын
Спасибо за отзыв!
Для статистики напишу что посмотрел данный курс уже будучи сотрудником по работе с данными, с каждым годом все реже правлю свои хранимые процедуры на ms sql server многие команды (функции) забылись решил пробудить память , данный курс очень хороший так как все очень быстро без воды и по делу👍😌 из минусов могу заметить что возможно было бы лучше использовать таблицы попроще с минимальным количеством столбцов чтобы ученикам было очевидно совершенное действие. Ещё раз благодарю за этот курс обязательно пройду продвинутую версию курса на вашем канале ... Оконные функции итд👍😉
@ExcelStore
2 жыл бұрын
Спасибо большое за отзыв. На счет "по-проще" даже не знаю.. Куда уж проще таблицы ))) Следующий уровень вниз - это разве что двумерная таблица.
Очень хороший вводный курс.
@ExcelStore
Жыл бұрын
Спасибо!
Спасибо за курс! Очень полезно и доходчиво
@ExcelStore
2 жыл бұрын
Ксения, спасибо за отзыв!
отличный курс! буду рекомендовать!
@ExcelStore
2 жыл бұрын
Спасибо, Евгений!
спасибо за курс! очень доходчиво, понятно. Отдельное спасибо за домашние задания и чат в телеграмме, это очень помогло!
@ExcelStore
2 жыл бұрын
Лера, спасибо за отзыв! Будут вопросы, пишите.
Максим, приветствую! Делал перерыв, в связи с релокацией, но за три дня освежил в памяти от и до задачки по данному курсу и теперь ощущаю себя достаточно комфортно. Спасибо Вам, буду продолжать продвинутый курс теперь! Хорошо, что не остановился, как в прошлый раз, когда начинал вначале года, теперь я поставил конкретную цель - перейти в аналитику и внутренний "я" за одно со мной :)
@ExcelStore
Жыл бұрын
Антон, приветствую. Если не секрет, куда перебрались?
@Calmasastone
Жыл бұрын
@@ExcelStore обязательно отпишу в TG, но попозже, сейчас занятия по плану
Спасибо огромное!! Курс шикарен))
@ExcelStore
Жыл бұрын
Спасибо, Сергей! Еще есть группа в телеграме с поддержкой и помощью по SQL. Заходите если что )
Спасибо что делитесь опытом и знаниями! Понравилось видео.
@ExcelStore
3 жыл бұрын
Спасибо за отзыв!
спасибо за курс
спасибо за урок
Спасибо
классный курс
@ExcelStore
2 жыл бұрын
Спасибо за отзыв! Будут вопросы по курсы либо SQL в целом - задавайте в нашей группе в Телеграм.
🎉
почему SYSDATE (на примере рассмотрения TRUNCATE) не возвратил время помимо даты? особенности SQL Developer?
@ExcelStore
2 жыл бұрын
Да, это специфика вывода в SQL Developer. Если тот же запрос выполнить в PL/SQL Dev, то все нормально отображается (дата + время).
@Vic7bd
2 жыл бұрын
Это легко включить, через настройки NLS, хоть до сотых укажите там и будет по умолчанию всё.
Спасибо, коротко и ясно. Искал и ищу ответ, может кто сталкивался, почему если пытаешься вычитать дату (надо получить разницу в секундах) то если преобразовывать TO_CHAR совместно с TO_DATE и вычет получается одно значение, а если напрямую даты вычитать и потом функцией EXTRACT вытаскиваю секунды, получаю другие значения. Разница иногда не видна почти, но иногда почти 2-3 секунды?
@ExcelStore
2 жыл бұрын
Виктор, пока вроде такого не замечал. Можете пример привести (запрос, чтобы проверить у себя)?
@Vic7bd
2 жыл бұрын
@@ExcelStore Спасибо! Что то так и не сумел толковый пример создать, но пока всё перебирал кажется понял то, что искал. По сути там где возник вопрос из БД вычислялось время от Старта до Финиша (получения сообщений) и там итоги в секундах, но одно дело разницу получать через TO_CHAR TO_DATE, а другое получилось, когда я решил отказаться от таких "больших" преобразований, просто вычесть даты которые уже есть (значений) и от туда применяя EXTRACT из полученного формата "INTERVAL DAY TO SECOND" вытягивать секунды. Оказалось (по описанию" формат INTERVAL DAY TO SECOND уже сам "округляет" до нужного значение "понимая" что у нас мера 24 часа, 60 минут, 60 секунд и в итоге остаются только несколько сотых, тогда как просто вычитая (хоть и применяется округление) значения гораздо точнее получалось. ==== Очень грубый пример как то так примерно если запросить, то SELECT TO_CHAR(SYSDATE,'DD MM YYYY HH24:MI:SS') AS "Дата",SYSTIMESTAMP, TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,'DD MM YYYY HH24:MI:SS'),'DD MM YYYY HH24:MI:SS') - TO_DATE('15 05 2022 23:52:40','DD MM YYYY HH24:MI:SS'))*24*60*60 AS "Секунды разность ДАТ", EXTRACT(SECOND FROM (SYSTIMESTAMP - TO_DATE('15 05 2022 23:52:40','DD MM YYYY HH24:MI:SS'))) AS "Секунды разность EXTRACT" FROM DUAL; ==== Итоги 17,9999999999999999999999999999999999712 18,814 Поэтому второй вариант где как бы красивее и не перебирая форматы проще было, вычесть дата и получать секунды, при округлении всё равно примерно тоже самое получилось бы, но точность там в итоге ниже чуть чуть, если использовать в таком варианте.
Добрый день, а если ли такая функция которая возвращает в одном столбце месяц и год из даты? (в формате дата)
@ExcelStore
Жыл бұрын
Добрый день. select trunc(sysdate, 'MONTH') from dual
@MrBooomsik
Жыл бұрын
@@ExcelStore А можно ли сделать так, что бы день в принципе не отображался? т.е. результат был 02.2023, а не 01.02.2023?
@ExcelStore
Жыл бұрын
@@MrBooomsik to_char(sysdate, 'MM.YYYY')
@MrBooomsik
Жыл бұрын
@@ExcelStore тут уже формат текста на выходе но спасибо за помощь, об этом варианте знаю