MS SQL Server предоставляет несколько встроенных функций для форматирования и отображения дат различными способами. Одной из наиболее часто используемых функций является функция FORMAT, которая позволяет изменить формат значения даты с помощью строки пользовательского формата.

Синтаксис функции FORMAT следующий:

FORMAT(date, format)

date — это значение даты, которое вы хотите отформатировать, а format — это строка пользовательского формата, указывающая, как должна отображаться дата.

Например, предположим, что вы хотите отобразить текущую дату в формате «гггг-мм-дд», вы можете использовать следующий запрос:

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS 'Current Date'
// 2023-01-12

В этом запросе функция FORMAT используется для форматирования текущей даты (GETDATE()) с использованием строки формата «гггг-мм-дд». Полученному столбцу присваивается имя «Текущая дата».

Вот еще несколько примеров использования функции FORMAT:

MS SQL Пользовательский формат даты в формате «дд/мм/гггг»

SELECT FORMAT(GETDATE(), 'dd/MM/yyyy') AS 'Current Date'
// 12/01/2023

MS SQL Пользовательский формат даты в формате «ММ/дд/гггг»

SELECT FORMAT(GETDATE(), 'MM/dd/yyyy') AS 'Current Date'
// 01/12/2023

MS SQL Пользовательский формат даты в формате «дддд, мммм дд, гггг»

SELECT FORMAT(GETDATE(), 'dddd, mmmm dd, yyyy') AS 'Current Date'
// Thursday, 11 12, 2023

Вы также можете использовать функцию FORMAT в сочетании с другими функциями и предложениями для форматирования значений даты из определенной таблицы. Например, чтобы отобразить дату определенного заказа в формате «гггг-мм-дд» из таблицы «Заказы», ​​вы можете использовать следующий запрос:

SELECT FORMAT(OrderDate, 'yyyy-MM-dd') AS 'Order Date'
FROM Orders
WHERE OrderID = 123

В этом запросе функция FORMAT используется для форматирования столбца OrderDate из таблицы Orders с использованием строки формата «гггг-мм-дд». В запросе также используется предложение WHERE для фильтрации результатов и отображения только заказа с идентификатором OrderID, равным 123.

Функцию FORMAT также можно комбинировать с другими функциями SQL Server, такими как DATEADD, DATEDIFF и т. д., для обработки и фильтрации даты.

SELECT FORMAT(DATEADD(day, -30, GETDATE()), 'yyyy-MM-dd') AS 'Date 30 days ago'
// 2022-12-13

В этом примере функция DATEADD используется для вычисления даты 30 дней назад, а функция FORMAT используется для форматирования даты.

Запустите ссылку SQLFiddle здесь, чтобы получить вывод, и попробуйте выполнить форматирование самостоятельно.

В заключение, функция ФОРМАТ — это мощный инструмент, позволяющий форматировать и отображать даты в определенном формате в MS SQL Server. Имея возможность использовать строку пользовательского формата, вы можете легко форматировать значения даты в соответствии со своими конкретными потребностями.

Первоначально опубликовано на https://stackblogger.com 26 января 2023 г.