SQL. Как работать с датами в SQL Server
Время чтения - 2 мин.Дата публикации 19.02.2020 (обновлено 14.12.2023)
Из строки в дату и обратно
Приведение строки к дате
-- формат dd.mm.yyyy
select try_convert(date, isnull(@fielddateBirth,'01.01.1980'), 104)
-- формат yyyy-mm-dd
select try_convert(date, isnull(@fielddateBirth,'1980-01-01'), 23)
Приведение даты к строке
-- формат dd.MM.yyyy
select try_convert(nvarchar(16), getdate(), 104)
-- формат yyyy-mm-dd
select convert(nvarchar, isnull(dateBirth,'1900-01-01'), 23)
Приведение даты к строке в заданном формате:
select format(getdate(), 'dd.MM.yyyy HH:mm')
Полезные функции по работе с датами
select getdate() -- получить текущую дату
select dateadd(day, 7, getdate()) -- добавить 7 дней к дате
select dateadd(month, -2, getdate()) -- отнять 2 месяца от даты
select datediff(minute, date1, date2) -- получить разницу в минутах между date2 и date1
SELECT DAY(GETDATE()) -- 28 получить день даты (аналогично month, year, week)
SELECT DATENAME(month, GETDATE()) -- July получить название месяца
SELECT DATEPART(month, GETDATE()) -- 7 получить часть даты (например, месяц, год или день)
SELECT DATEFROMPARTS(2017, 7, 28) -- 2017-07-28 строит дату из частей
SELECT ISDATE('2017-07-28') -- 1 - проверка является ли строка датой
Полезные вычисления по датам (типовые задачи)
-- начало и конец недели
SET DATEFIRST 4 /* or use any other weird value to test it */
DECLARE @d DATETIME = GETDATE()
SELECT
@d ThatDate,
cast( DATEADD(dd, 0 - (@@DATEFIRST + 5 + DATEPART(dw, @d)) % 7, @d) as date) Monday,
cast(DATEADD(dd, 6 - (@@DATEFIRST + 5 + DATEPART(dw, @d)) % 7, @d) as date) Sunday
-- начало месяца
SELECT DATEADD(month, DATEDIFF(month, 0, @d), 0) AS StartOfMonth
-- номер недели в году
set datefirst 1;
select datepart(week, '2017-02-01');
-- получение дня недели
select datename(dw,getdate()) --Thursday
select datepart(dw,getdate()) --2
Форматы дат: https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/
Работа с датами на Metanit - https://metanit.com/sql/sqlserver/8.3.php
Дополнительные материалы
- Особенности работы с датами в формах на Falcon Space
- Как настроить выбор вариантов для поля интервал дат
- Как в выборе даты задать доступные даты
- Обработка даты из поля datetime-local
Что еще посмотреть по SQL Server
Как организовать бизнес-логику в хранимых процедурах SQL Server. Реализация слоя BLL в SQL
Индексы SQL Server. Поиск дубликатов
Запрос для получения SQL всех индексов для таблиц базы данных SQL Server
Как перестроить все индексы на базе SQL Server
Как разрезать строку на части в SQL по некоторому символу
Конвертация из строки в таблицу в SQL Server
Выполнение прямого запроса к URL из SQL
SQL Server Как установить у таблицы описание (MS Description)
Как получить текущего юзера БД
Дополнительный заработок для разработчиков на T-SQL
Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML.
Falcon Space - платформа для создания сайтов с личными кабинетами
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Запрос расчета стоимости веб-проекта на базе Falcon Space
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта