Практическое руководство по SQL.
Если бы вы спросили о самом важном навыке для специалиста по данным до того, как я получил свою первую работу, я бы определенно ответил на Python. Без сомнений!
Сейчас я работаю специалистом по обработке данных, и если вы зададите мне тот же вопрос, я отвечу по-прежнему на Python. Однако у меня есть другие мысли. Что заставляет меня задуматься дважды, так это SQL.
SQL - обязательный навык для специалистов по данным. Он в основном используется для запросов к реляционным базам данных, но может выполнять гораздо больше. SQL обладает таким количеством функций, что делает его высокоэффективным инструментом анализа и обработки данных.
В этой статье мы рассмотрим 5 функций SQL, которые используются для управления датами. Они пригодятся при работе с данными, которые включают информацию на основе даты или времени.
Примечание. SQL используется многими системами управления реляционными базами данных, такими как MySQL, SQL Server, PostgreSQL и т. д. Хотя они в основном используют один и тот же синтаксис SQL, могут быть небольшие различия. В этой статье мы будем использовать SQL Server.
1. Getdate
Как следует из названия, функция getdate дает нам сегодняшнюю дату. Приведем пример.
DECLARE @mydate Date SET @mydate = GETDATE() print @mydate '2021-08-22'
Мы создаем переменную mydate и присваиваем ей значение сегодняшней даты.
2. Dateadd
Название этой функции даже более понятно, чем предыдущее. Функция dateadd используется для добавления интервала времени или даты к дате.
Как всегда, синтаксис легче понять на примерах.
DECLARE @mydate Date SET @mydate = GETDATE() SELECT DATEADD(MONTH, 1, @mydate) AS NextMonth NextMonth 2021-09-22
Первый параметр указывает интервал, а второй - количество интервалов. Третий параметр - базовое значение.
DATEADD(interval, number of intervals, date)
Мы можем использовать и другие интервалы.
DECLARE @mydate Date SET @mydate = GETDATE() SELECT DATEADD(WEEK, -2, @mydate) AS TwoWeeksBefore TwoWeeksBefore 2021-08-08
Если вы поставите знак минус перед числом интервалов, он вычитает указанный интервал из заданной даты.
Можно добавить временные интервалы, но нам нужно использовать переменную datetime.
DECLARE @mydate DateTime SET @mydate = GETDATE() SELECT DATEADD(HOUR, 10, @mydate) '2021-08-23 00:10:17.287'
3. Datediff
Функция dateiff используется для вычисления разницы между двумя датами на основе заданного интервала.
DECLARE @mydate Date SET @mydate = '2018-08-08' SELECT DATEDIFF(MONTH, @mydate, GETDATE()) 36
Переменная mydate содержит значение «2018-08-08». В операторе select мы вычисляем разницу между этой переменной и текущей датой.
Как и функция dateadd, функция dateiff принимает и другие интервалы.
DECLARE @mydate Date SET @mydate = '2021-10-08' SELECT DATEDIFF(DAY, @mydate, GETDATE()) AS DayDifference DayDifference 47
4. Дата
Функция datename может использоваться для извлечения частей даты. Например, мы можем получить название месяца и дня из даты следующим образом:
DECLARE @mydate Date SET @mydate = '2021-10-08' SELECT DATENAME(MONTH, @mydate) October SELECT DATENAME(WEEKDAY, @mydate) Friday
5. Год, месяц и день
Год, месяц и день - это отдельные функции, но я думаю, что лучше охватить их вместе.
Мы рассмотрели функцию datename, которая дает нам имена месяца и дня. В некоторых случаях нам нужна эта информация в виде чисел. Функции года, месяца и дня позволяют разложить дату.
Приведем пример, демонстрирующий, как их можно использовать.
DECLARE @mydate Date SET @mydate = '2021-10-08' SELECT Date = @mydate, Year = YEAR(@mydate), Month = MONTH(@mydate), Day = DAY(@mydate) Date Year Month Day 2021-10-08 2021 10 8
Теперь у нас есть доступ к каждой части заданной даты.
Заключение
Управление датами важно для анализа данных, особенно при работе с данными временных рядов. SQL предоставляет несколько функций, чтобы сделать этот процесс простым и эффективным.
Функции, описанные в этой статье, охватывают значительный объем операций, которые вам нужно будет проделать с датами.
Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.