в чем разница между month и mm в указание формата
В чем разница между month и mm в указание формата
В этой рубрике Вы найдете уроки по Javascript библиотеке jQuery.
Анимация набора текста на jQuery
Сегодня мы бы хотели вам рассказать о библиотеке TypeIt — бесплатном jQuery плагине. С её помощью можно имитировать набор текста. Если всё настроить правильно, то можно добиться очень реалистичного эффекта.
Временная шкала на jQuery
jQuery плагин для создания временной шкалы.
Заметка: Перезагрузка и редирект на JavaScript
Быстрая заметка, где вы сможете найти парочку JS сниппетов для перезагрузки и перенаправления пользователей через JavaScript.
Рисуем диаграмму Ганта
jQuery плагин для создания диаграммы Ганта.
AJAX и PHP: загрузка файла
Пример того как осуществить загрузку файла через PHP и jQuery ajax.
Stimed — стили в зависимости от времени суток
Интересная библиотека с помощью которой можно задать определённым элементам страницы особые стили в зависимости от времени суток.
jQuery плагин для отображения превью загружаемого файла
Небольшой jQuery плагин, который позволит увидеть миниатюру изображения ещё до загрузки на сервер.
Форматы даты
Ввод даты в JavaScript
В JavaScript существует 3 основных типа формата ввода даты:
Тип | Пример |
---|---|
Запись по ISO | «2015-03-25» (Международный стандарт) |
Короткая запись | «03/25/2015» |
Длинная | «Mar 25 2015» или «25 Mar 2015» |
Формат ISO соответствует строгому стандарту JavaScript.
Другие форматы определены не так хорошо, поэтому могут отличаться в зависимости от браузера.
Вывод даты в JavaScript
Независимо от использованного формата ввода, JavaScript по умолчанию выводит дату в формате полной текстовой строки:
JavaScript даты в формате ISO
ISO 8601 — это международный стандарт представления даты и времени.
Синтаксис стандарта ISO 8601 (ГГГГ-ММ-ДД, где ГГГГ — полный год, ММ — номер месяца, ДД — день) также является предпочитаемым форматом даты в JavaScript.
Пример (Полная дата):
Внимание! Дата вычисляется относительно временной зоны пользователя. Так, в зависимости от местоположения пользователя результат вышеприведенного примера будет колебаться между 24 и 25 мартом.
Дата по ISO (год и месяц)
Дата по стандарту ISO также может записываться и без определения дня (ГГГГ-ММ):
В этом случае в зависимости от временной зоны пользователя дата будет колебаться между 28 февраля и 1 марта.
Дата по ISO (только год)
Кроме этого, дата по стандарту ISO также может записываться без определения месяца и дня (ГГГГ):
В этом случае в зависимости от временной зоны пользователя дата будет колебаться между 31 декабря 2014 и 1 января 2015.
Дата по ISO (дата-время)
Дата по стандарту ISO может записываться с добавлением часов, минут и секунд (ГГГГ-ММ-ДДTЧЧ:ММ:ССZ):
Дата и время разделяются заглавной латинской буквой T.
Время по UTC определяется заглавной латинской буквой Z.
UTC (Универсальные координаты времени — анг. Universal Time Coordinated) то же самое, что GMT (Время по Гринвичу — анг. Greenwich Mean Time).
Внимание! Если в строке даты-времени не указать заглавные латинские буквы T и Z, то результат будет разным в разных браузерах.
Временные зоны
При установки даты без указания временной зоны JavaScript будет использовать временную зону браузера.
При получении даты без указания временной зоны результат будет преобразован во временную зону браузера.
Другими словами: Если дата/время создаются по GMT (Время по Гринвичу), то дата/время будут преобразованы в московское время, если браузер пользователя работает в Москве.
Короткая запись даты
Короткая запись даты имеет следующую форму «ММ/ДД/ГГГГ», где ГГГГ — полный год, ММ — номер месяца, ДД — день.
В некоторых браузерах указание месяца и дня без начального нуля может привести к ошибке:
Поведение браузера при формате записи «ГГГГ/ММ/ДД» не определено.
Некоторые браузеры попытаются угадать формат. Некоторые вернут значение NaN.
Поведение браузера при формате записи «ДД-ММ-ГГГГ» также не определено.
Некоторые браузеры попытаются угадать формат. Некоторые вернут значение NaN.
Длинная запись даты
Длинная запись даты имеет следующий синтаксис «МММ ДД ГГГГ»:
Месяц и день могут быть в любом порядке:
Месяц может записываться либо полностью (January), либо сокращенно (Jan):
Запятые игнорируются. Имена регистронезависимы:
Ввод даты при помощи парсинга
Корректно составленную строку даты можно при помощи метода Date.parse() преобразовать в миллисекунды.
Метод Date.parse() возвращает количество миллисекунд, прошедших с 1 января 1970 до заданной даты:
В последствии эти миллисекунды можно преобразовать в объект даты:
Тип данных даты и времени (свойство Format)
Область применения: Access 2013 | Access 2016
Свойство Format можно настроить до заранее заранее установленных форматов даты и времени или использовать настраиваемые форматы для типа данных Date/Time.
Параметры
Предопределяемые форматы
В следующей таблице показаны предопределенные параметры свойств Format для типа данных Date/Time.
Setting | Описание |
---|---|
General Date | (По умолчанию) Если значение является только датой, время не отображается; если значение является только временем, дата не отображается. Этот параметр является сочетанием параметров «Короткая дата» и «Долгое время». Примеры: 4/3/93, 05:34:00 и 4/3/93 05:34:00 ВЕЧЕРА. |
Long Date | То же, что и параметр Long Date в региональных параметрах Windows. Пример: суббота, 3 апреля 1993 г. |
Medium Date | Пример: 3-Apr-93. |
Short Date | То же, что и параметр Short Date в региональных параметрах Windows. ВНИМАНИЕ. Параметр «Короткая дата» предполагает, что даты между 1/1/00 и 12/31/29 — это даты 21-го века (то есть предполагается, что это период с 2000 по 2029 год). Даты между 1/1/30 и 12/31/99 считаются датами 20-го века (то есть даты 1930-1999 годов). |
Long Time | То же, что и параметр на вкладке Время в региональных параметрах Windows. Пример: 17:34:23. |
Medium Time | Пример: 17:34. |
Short Time | Пример: 17:34. |
Настраиваемые форматы
Вы можете создать настраиваемые форматы дат и времени с помощью следующих символов.
Символ | Описание |
---|---|
: (двоеточие) | Разделитель компонентов времени. Сепараторы устанавливаются в региональных параметрах Windows. |
/ | Разделитель компонентов даты. |
c | То же самое, что и заранее задатки формата General Date. |
d | День месяца в одной или двух числовых цифрах, по мере необходимости (от 1 до 31). |
dd | День месяца в двух числовом цифре (от 01 до 31). |
ddd | Первые три буквы буднего дня (от солнца до Сб). |
dddd | Полное имя буднего дня (с воскресенья по субботу). |
ddddd | То же самое, что и заранее задатки формата. |
dddddd | То же самое, что и заранее задатки формата Long Date. |
w | День недели (от 1 до 7). |
ww | Неделя года (от 1 до 53). |
m | Месяц года в одной или двух числовых цифрах по мере необходимости (от 1 до 12). |
mm | Месяц года в двух числовом цифре (от 01 до 12). |
mmm | Первые три буквы месяца (с января по декабрь). |
mmmm | Полное имя месяца (с января по декабрь). |
q | Дата отображается как квартал года (от 1 до 4). |
y | Число дня в году (от 1 до 366). |
yy | Последние две цифры года (от 01 до 99). |
yyyy | Полный год (от 0100 до 9999). |
h | Час в одной или двух цифрах, по мере необходимости (от 0 до 23). |
hh | Час в двух цифрах (от 00 до 23). |
n | Минута в одну или две цифры, по мере необходимости (от 0 до 59). |
nn | Минута в две цифры (от 00 до 59). |
s | Второй в одной или двух цифрах, по мере необходимости (от 0 до 59). |
ss | Второе место в двух цифрах (от 00 до 59). |
ttttt | То же самое, что и заранее задав формат. |
AM/PM | Двенадцать часов с буквами верхнего шкафа «AM» или «PM» по мере необходимости. |
am/pm | Двенадцать часов с буквами «am» или «pm» по мере необходимости. |
A/P | Двенадцать часов с буквой верхнего шкафа «A» или «P» по мере необходимости. |
a/p | Двенадцать часов с нижней буквой «a» или «p» по мере необходимости. |
AMPM | Двенадцать часов с соответствующим утренним или послеобеденный конструктором, как определено в региональных параметрах Windows. |
Настраиваемые форматы отображаются в соответствии с настройками, указанными в региональных параметрах Windows. Пользовательские форматы, несовместимые с настройками, указанными в региональных параметрах Windows, игнорируются.
Пример
Ниже приводится пример настраиваемого формата даты и времени.
Setting | Дисплей |
---|---|
ddd», «mmm d», «yyyy | Пн, 2 июня 1997 г. |
mmmm dd», «yyyy | 02 июня 1997 г. |
«This is week number «ww | Это неделя Номер 22 |
«Today is «dddd | Сегодня вторник |
Для отображения «A.D» можно использовать настраиваемый формат. до или «B.C». через год в зависимости от того, вошел ли положительный или отрицательный номер. Чтобы увидеть работу этого настраиваемого формата, создайте новое поле таблицы, установите его тип данных на номер и введите формат следующим образом:
Положительные цифры отображаются в качестве лет с помощью «A.D». до года. Отрицательные цифры отображаются в качестве лет с «B.C». после года.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Как вывести текущую дату в sql
В этой статье мы рассмотрим основы работы с датой и временем в MySQL.
Формат даты и времени
MySQL date format поддерживает несколько форматов даты и времени. Их можно определить следующим образом:
DATE — хранит значение даты в виде ГГГГ-ММ-ДД. Например, 2008-10-23.
DATETIME — хранит значение даты и времени в виде ГГГГ-MM-ДД ЧЧ:ММ:СС. Например, 2008-10-23 10:37:22. Поддерживаемый диапазон дат и времени: 1000-01-01 00:00:00 до 9999-12-31 23:59:59
TIMESTAMP — похож на DATETIME с некоторыми различиями в зависимости от версии MySQL и режима, в котором работает сервер.
Создание полей даты и времени
Форматы даты и времени
Наиболее часто используемым разделителем для дат является тире ( — ), а для времени — двоеточие ( : ). Но мы можем использовать любой символ, или вообще не добавлять никакого символа.
Например, все следующие форматы являются правильными:
Функции даты и времени
MySQL содержит множество функций, которые используются для обработки даты и времени. В приведенной ниже таблице представлен список наиболее часто используемых функций:
Функция | Описание |
ADDDATE() | Добавляет дату. |
ADDTIME() | Добавляет время. |
CONVERT_TZ() | Конвертирует из одного часового пояса в другой. |
CURDATE() | Возвращает текущую дату. |
CURTIME() | Возвращает текущее системное время. |
DATE_ADD() | Добавляет одну дату к другой. |
MySQL DATE_FORMAT () | Задает указанный формат даты. |
DATE() | Извлекает часть даты из даты или выражения дата-время. |
DATEDIFF() | Вычитает одну дату из другой. |
DAYNAME() | Возвращает день недели. |
DAYOFMONTH() | Возвращает день месяца (1-31). |
DAYOFWEEK() | Возвращает индекс дня недели из аргумента. |
DAYOFYEAR() | Возвращает день года (1-366). |
EXTRACT | Извлекает часть даты. |
FROM_DAYS() | Преобразует номер дня в дату. |
FROM_UNIXTIME() | Задает формат даты в формате UNIX. |
MySQL DATE_SUB () | Вычитает одну дату из другой. |
HOUR() | Извлекает час. |
LAST_DAY | Возвращает последний день месяца для аргумента. |
MAKEDATE() | Создает дату из года и дня года. |
MAKETIME () | Возвращает значение времени. |
MICROSECOND() | Возвращает миллисекунды из аргумента. |
MINUTE() | Возвращает минуты из аргумента. |
MONTH() | Возвращает месяц из переданной даты. |
MONTHNAME() | Возвращает название месяца. |
NOW() | Возвращает текущую дату и время. |
PERIOD_ADD() | Добавляет интервал к месяцу-году. |
PERIOD_DIFF() | Возвращает количество месяцев между двумя периодами. |
QUARTER() | Возвращает четверть часа из переданной даты в качестве аргумента. |
SEC_TO_TIME() | Конвертирует секунды в формат ‘ЧЧ:MM:СС’. |
SECOND() | Возвращает секунду (0-59). |
MySQL STR_TO_DATE () | Преобразует строку в дату. |
SUBTIME() | Вычитает время. |
SYSDATE() | Возвращает время, в которое была выполнена функция. |
TIME_FORMAT() | Задает формат времени. |
TIME_TO_SEC() | Возвращает аргумент, преобразованный в секунды. |
TIME() | Выбирает часть времени из выражения, передаваемого в качестве аргумента. |
TIMEDIFF() | Вычитает время. |
TIMESTAMP() | С одним аргументом эта функция возвращает дату или выражение дата-время. С двумя аргументами возвращается сумма аргументов. |
TIMESTAMPADD() | Добавляет интервал к дате-времени. |
TIMESTAMPDIFF() | Вычитает интервал из даты — времени. |
TO_DAYS() | Возвращает аргумент даты, преобразованный в дни. |
UNIX_TIMESTAMP() | Извлекает дату-время в формате UNIX в формат, принимаемый MySQL. |
UTC_DATE() | Возвращает текущую дату по универсальному времени (UTC). |
UTC_TIME() | Возвращает текущее время по универсальному времени (UTC). |
UTC_TIMESTAMP() | Возвращает текущую дату-время по универсальному времени (UTC). |
WEEK() | Возвращает номер недели. |
WEEKDAY() | Возвращает индекс дня недели. |
WEEKOFYEAR() | Возвращает календарную неделю даты (1-53). |
YEAR() | Возвращает год. |
YEARWEEK() | Возвращает год и неделю. |
Вы можете попробовать сочетание нескольких функций в одном запросе (например, чтобы найти день недели):
mysql> SELECT MONTHNAME(NOW());
Внесение значений даты и времени в столбцы таблицы
Данный запрос создает заказ для указанного элемента с датой, временем выполнения заказа, и интервалом через две недели после этого в качестве даты доставки:
Точно так же можно заказать товар с датой доставки через два месяца:
Извлечение данных по дате и времени
В MySQL мы можем отфильтровать извлеченные данные в зависимости от даты и времени. Например, мы можем извлечь только те заказы, доставка которых запланирована на ноябрь:
Заключение
Функция текущей даты SQL CURDATE() и её аналоги CURRENT_DATE() и CURRENT_DATE среди других функций даты и времени применяются наиболее часто из-за широких возможностей, обеспечиваемых ими для анализа данных. Знакомство с функциями даты и времени начнём с разбора практических примеров, демонстрирующих возможности функции текущей даты. А затем перейдём к остальным функциям даты и времени, соблюдая для удобства их классификацию по назначению.
Функция текущей даты SQL, её возможности
Функция текущей даты CURDATE() возвращает значение текущей даты в формате ‘YYYY-MM-DD’ и ‘YYYYDDMM’. Вычисляя несколькими способами (их как раз и разберём в этом параграфе) разницу значений дат, можно определить такие важные значения, как возраст человека, его трудовой стаж, продолжительность различных процессов и явлений и многое другое.
В примерах работаем с базой данных «Театр». Таблица Play содержит данные о постановках. Таблица Team — о ролях актёров. Таблица Actor — об актёрах. Таблица Director — о режиссёрах. Поля таблиц, первичные и внешние ключи можно увидеть на рисунке ниже (для увеличения нажать левой кнопкой мыши).
Это уже база с большим объёмом данных по сравнению с примерами ко многим другим темам нашего курса. Поэтому не будем приводить строки данных таблиц и таблицы результатов запросов. Однако это будет компенсировано подробным разбором логики построения запросов, которые, надо признать, имеют достаточно высокую сложность.
Пример 1. Сформировать список актеров старше 70 лет. Пишем следующий запрос:
В этом запросе вычисляется разница между текущей датой CURDATE() и датой рождения актёра BirthDate, содержащейся в таблице ACTOR. Для вычисления разницы применена функция TIMESTAMPDIFF(). Ключевое слово YEAR — задаёт единицу измерения — в годах интервала между датами. Вычисленное значение и результат его сравнения с числом 70 вполне пригодны в качестве условия выборки в секции WHERE. Следует учесть, что функция TIMESTAMPDIFF() существует лишь в MySQL. В других диалектах SQL для этого есть функция DATEDIFF, а для задания единицы измерения применяются различные ключевые слова в различных вариантах написания.
Для вычисления разницы дат можно использовать и оператор «минус». Это сделано в следующем примере.
Пример 2. Вывести список актеров, которые не задействованы в новых постановках (в постановках последних 3 лет). Использовать CURDATE(), NOT IN. Запрос будет следующим:
В этом запросе разница между текущей датой CURDATE() и датой премьеры постановки PremiereDate из таблицы Play вычисляется как имя столбца в результирующей таблице. Поскольку эти даты имеют один и тот же формат, для вычисления разницы достаточно использовать оператор «минус». Разница вычислена. Но из таблицы Play невозможно напрямую «достучаться» до таблицы Actor, содержащей данные об актёрах. Поэтому используем соединение (JOIN) этой таблицы с таблицей Team, которая уже связана с таблицей Actor при помощи ключа Actor_ID. Соединение таблиц Team и Actor — второе в этой цепочке из трёх таблиц.
Составить SQL запросы с текущей датой самостоятельно, а затем посмотреть решения
Пример 4. Определить самого востребованного актера за последние 5 лет. Оператор JOIN использовать 2 раза. Использовать CURDATE(), LIMIT 1.
Пример 5. Определить спектакли, в которых средний возраст актеров от 20 до 30 (использовать BETWEEN, GROUP BY, AVG).
Функции, возвращающие текущие дату, время, дату и время
CURDATE(), CURRENT_DATE(), CURRENT_DATE — возвращают текущую дату в формате ‘YYYY-MM-DD’ или YYYYDDMM в зависимости от того, вызывается функция в текстовом или числовом контексте.
CURTIME(), CURRENT_TIME(), CURRENT_TIME — возвращают текущее время суток в формате ‘hh-mm-ss’ или hhmmss в зависимости от того, вызывается функция в текстовом или числовом контексте.
NOW() — возвращает текущие дату и время формате ‘YYYY-MM-DD hh:mm:ss’ или YYYYDDMMhhmmss в зависимости от того, вызывается функция в текстовом или числовом контексте.
Функции для вычисления разницы между моментами
TIMEDIFF(param1, param2) — возвращает разницу между значениями времени, заданными параметрами param1 и param2.
DATEDIFF(param1, param2) — возвращает разницу между датами param1 и param2. Значения param1 и param2 могут иметь типы DATE или DATETIME, а при вычислении разницы используется лишь часть DATE.
PERIOD_DIFF(param1, param2) — возвращает разницу в месяцах между датами param1 и param2. Значения param1 и param2 могут быть представлены в числовом формате YYYYMM или YYMM.
TIMESTAMPDIFF(interval, param1, param2) — возвращает разницу между значениями датами param1 и param2. Значения param1 и param2 могут быть представлены в форматах ‘YYYY-MM-DD’ или ‘YYYY-MM-DD hh:mm:ss’. Единица измерения разницы задаётся параметром interval. Он может принимать значения FRAC_SECOND (микросекунды), SECOND (секунды), MINUTE (минуты), HOUR (часы), DAY (дни), WEEK (недели), MONTH (месяцы), QUARTER (кварталы), YEAR (годы).
Функции для добавления (или вычитания) некоторого значения к моменту
ADDDATE(date, INTERVAL value) — возвращает дату, к которой прибавлено значение value. Ключевое слово INTERVAL обязательно следует в запросе, после него указывается значение value, а затем единицы измерения прибавляемого значения. Ими могут быть SECOND (секунды), MINUTE (минуты), HOUR (часы), MINUTE_SECOND (минуты и секунды), HOUR_MINUTE (часы и минуты), DAY_SECOND (дни, часы минуты и секунды), DAY_MINUTE (дни, часы и минуты), DAY_HOUR (дни и часы), YEAR_MONTH (годы и месяцы).
SUBDATE(date, INTERVAL value) — вычитает из величины даты date произвольный временной интервал и возвращает результат. Ключевое слово INTERVAL обязательно следует в запросе, после него указывается значение value, а затем единицы измерения вычитаемого значения. Возможные единицы измерения — те же, что и для функции ADDDATE().
SUBTIME(datetime, time) — вычитает из величины времени datetime вида ‘YYYY-MM-DD hh:mm:ss’ произвольно заданное значение времени time и возвращает результат.
PERIOD_ADD(period, N) — добавляет N месяцев к значению даты period. Значение period должно быть представлено в числовом формате ‘YYYYMM’ или ‘YYMM’.
TIMESTAMPADD(interval, param1, param2) — прибавляет к дате и времени суток param2 в полном или кратком формате временной интервал param1, единицы измерения которого заданы параметром interval. Возможные единицы измерения — те же, что и для функции TIMESTAMPDIFF().
Функции, характеризующие момент (значение аргумента)
DATE(datetime) — извлекает из значения даты и времени суток в формате DATETIME (‘YYYY-MM-DD hh:mm:ss’) только дату, отсекая часы, минуты и секунды.
TIME(datetime) — извлекает из значения даты и времени суток в формате DATETIME (‘YYYY-MM-DD hh:mm:ss’) только время суток, отсекая дату.
TIMESTAMP(param) — принимает в качестве аргумента дату и время суток в полном или кратком формате и возвращает полный вариант в формате DATETIME (‘YYYY-MM-DD hh:mm:ss’).
DAY(date), DAYOFMONTH(date) — принимают в качестве аргумента дату, и возвращают порядковый номер дня в месяце (от 1 до 31).
DAYNAME(date) — принимает в качестве аргумента дату, и возвращает день недели в виде полного слова на английском языке.
DAYOFWEEK(date) — принимает в качестве аргумента дату, и возвращает порядкоый номер дня недели от 1 (воскресенье) до 7 (суббота).
WEEKDAY(date) — принимает в качестве аргумента дату, и возвращает порядкоый номер дня недели от 0 (понедельник) до 6 (воскресенье).
WEEK(date) — принимает в качестве аргумента дату, и возвращает номер недели в году для этой даты от 0 до 53.
WEEKOFYEAR(datetime) — возвращает порядковый номер недели в году для даты datetime от 1 до 53.
MONTH(datetime) — возвращает числовое значение месяца года от 1 до 12 для даты datetime.
MONTHNAME(datetime) — возвращает строку с названием месяца для даты datetime.
QUARTER(datetime) — возвращает значение квартала от 1 до 4 для даты datetime, которая может быть передана в формате ‘YYYY-MM-DD’ или ‘YYYY-MM-DD hh:mm:ss’.
YEAR(datetime) — возвращает год от 1000 до 9999 для даты datetime.
DAYOFYEAR(date) — возвращает порядковый номер дня в году от 1 до 366 для даты date.
HOUR(datetime) — возвращает значение часа от 0 до 23 для времени datetime.
MINUTE(datetime) — возвращает значение минут от 0 до 59 для времени datetime.
SECOND(time) — возвращает количество секунд для времени суток time, которое задаётся либо в виде строки ‘hh:mm:ss’, либо числа hhmmss.
EXTRACT(type FROM datetime) — принимает дату и время суток datetime и возвращает часть, определяемую параметром type. Значениями параметра могут быть YEAR, MONTH, DAY, HOUR, MINUTE, SECOND.
Функции для преобразования разницы в дни и секунды
TO_DAYS(date) — принимает дату date в кратком ‘YYYY-MM-DD’ или полном формате ‘YYYY-MM-DD hh:mm:ss’ и возвращает количество дней, прошедших с нулевого года.
FROM_DAYS(N) — принимает количество дней N, прошедших с нулевого года, и возвращает дату в формате ‘YYYY-MM-DD’.
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(datetime) — если параметр не указан, то возвращает количество секунд, прошедших с 00:00 1 января 1970 года. Если параметр datetime указан (в кратком ‘YYYY-MM-DD’ или полном формате ‘YYYY-MM-DD hh:mm:ss’), то возвращает разницу в секундах между 00:00 1 января 1970 года и датой datetime.
FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp, format) — принимает количество секунд, прошедших с 00:00 1 января 1970 года и возвращает дату и время суток в виде строки ‘YYYY-MM-DD hh:mm:ss’ или в виде числа YYYYDDMMhhmmss в зависимости от того, вызвана функция в строковом или числовом контексте.
TIME_TO_SEC(time) — принимает время суток time в формате ‘hh:mm:ss’ и возвращает количество секунд, прошедших с начала суток.
SEC_TO_TIME(seconds) — принимает количество секунд seconds, прошедших с начала суток и возвращает время в формате ‘hh:mm:ss’ или hhmmss в зависимости от того, вызвана функция в строковом или числовом контексте.
MAKEDATE(year, dayofyear) — принимает год year, номер дня в году dayofyear и возвращает дату в формате ‘YYYY-MM-DD’.
MAKETIME(hour, minute, second) — принимает часы hour, минуты minute и секунды second и возвращает время суток в формате ‘hh:mm:ss’.
Привет, сегодня я покажу, как в T-SQL из даты можно получить определенную часть этой даты, например, год, месяц, день и даже час, иными словами, в данном материале мы ответим на несколько вопросов, которые связаны с извлечением данных из значения, содержащего дату.
Как в T-SQL получить текущую дату?
Для начала давайте я расскажу о том, как в Microsoft SQL Server можно получить значение текущей даты.
Для получения текущей даты в Microsoft SQL Server существует несколько специальных системных функций. Давайте некоторые из этих функций рассмотрим.
Примечание! Для того чтобы получить значение даты и времени с учетом смещения часового пояса, необходимо использовать функцию SYSDATETIMEOFFSET, а для того чтобы получить значение даты и времени в формате UTC функции GETUTCDATE или SYSUTCDATETIME.
Пример – получение текущей даты в Microsoft SQL Server
В данном примере мы вызовем три функции получения текущей даты.
Как видите, результат практически одинаковый, за исключением того, что SYSDATETIME вернула более точное значение времени.
Как получить год из даты в T-SQL?
Если у Вас возникла необходимость из даты получить год, то есть, например, из 01.01.2019 получить 2019 в виде отдельного значения или просто из текущей даты получить год, то в Microsoft SQL Server Вы это можете сделать несколькими способами.
Первый способ заключается в использовании специальной функции YEAR, которая как раз и делает ровно то, что нам нужно, иными словами, она возвращает целое число, представляющее год даты, указанной во входном параметре.
Второй способ предполагает использование другой функции T-SQL – это DATEPART, которая возвращает целое число, представляющее указанную часть даты.
DATEPART принимает два параметра: первый, datepart, т.е. какую часть даты нам нужно вернуть, второй, дата, которую необходимо обработать.
Пример – получаем год из даты в Microsoft SQL Server
В данном примере я покажу различные вариации передачи параметра DATE в указанные выше функции, так как его можно передать и в виде переменной, и в виде выражения, и в виде функции. Сразу скажу, что эти способы передачи параметра можно использовать и в других функциях, которые сегодня мы будем рассматривать.
Чтобы DATEPART нам вернула год из даты, первым параметром нам необходимо передать значение, характеризующее часть «год», допустимо передавать следующие значения: year, yyyy или yy.
Как получить месяц из даты в T-SQL?
В T-SQL из даты можно получить и номер месяца, для этого можно использовать функцию MONTH, она возвращает целое число, представляющее месяц указанной даты или все ту же функцию DATEPART, в которую, в данном случае необходимо будет передать значение, характеризующее часть даты «месяц», можно использовать: month, mm или m.
Пример – получаем месяц из даты в Microsoft SQL Server
В этом примере мы получаем месяц из даты снова несколькими способами.
Как из даты получить день в T-SQL?
Для того чтобы получить из даты день, в T-SQL можно использовать функцию DAY – это функция возвращает целое число, представляющее день указанной даты. Также можно использовать и уже знакомую функцию DATEPART со значением первого параметра: day, dd или d.
Пример – получаем день из даты в Microsoft SQL Server
Здесь также мы используем несколько способов для получения дня из даты.
Как из даты получить час в T-SQL?
Чтобы из даты получить час, мы можем использовать функцию DATEPART со значением hour или hh. Только в данном случае второй параметр (date), в котором мы передаем значение даты, должен обязательно содержать время, т.е. иметь тип данных DATETIME, тип DATE не допускается.
Пример – получаем час из даты в Microsoft SQL Server
В этом примере мы из даты получаем час.
У меня все, надеюсь, перечисленные выше примеры помогут Вам в решении Ваших задач. Начинающим программистам рекомендую почитать книгу «Путь программиста T-SQL», в ней я рассказываю про все основные конструкции языка T-SQL, с помощью нее Вы научитесь работать с языком T-SQL с нуля.