SQL. Как работать с датами в SQL Server
Из строки в дату и обратно
Приведение строки к дате
-- формат 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. Как переносить на новую строку в строковой переменной в SQL
SQL. Вывод разметки HTML в сыром виде (в виде тегов) в SQL
SQL. Как привести дату в строку в нужный формат в SQL Server
SQL. Как использовать select from Хранимка
SQL. Как прописью написать число в SQL
SQL. Как массово залить данные в таблицу БД через CSV (Excel)
SQL. Как перенести сложный тип данных на другую базу
SQL. Как перевести дату JS в дату SQL
SQL. Как выводить окончание у множественного числа (5 заказОВ, 3 заказА)
Настройка полнотекстового поиска fulltext search в SQL Server
Разработчик SQL, нужны клиенты и заказы?
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта