Trogers96 Ответов: 2

Формат даты Sql для определенных строк преобразования


Я пытаюсь использовать формат даты 101 (американский стиль) для моего измерения даты, над которым я работаю. В настоящее время у меня есть две формулы, которые я пытаюсь использовать для основного первого дня и последнего дня месяца и т. д. Они появляются как гггг-ММ-ДД, и я хочу, чтобы они были на 101 (ММ/ДД/гггг). Формулы таковы
DATEADD(month, DATEDIFF(month, 0, @CurrentDate), 0) AS first_day_of_month,

И
CONVERT(DATETIME, CONVERT(DATE, DATEADD(DD, - (DATEPART(DD, (DATEADD(MM, 1, @CurrentDate)))), DATEADD(MM, 1, @CurrentDate)))) AS last_day_of_month,


Что я уже пробовал:

Я пробовал вставить туда 101 и dateformat, а также сделать обновление, но не смог этого понять

Maciej Los

Дата есть дата и ничего больше! Если вы хотите отобразить пользовательский формат, вы должны преобразовать его в строку.

2 Ответов

Рейтинг:
2

Maciej Los

Пожалуйста, сначала прочтите мой комментарий, а затем обратитесь к этой статье: Работа с пользовательскими форматами дат в T-SQL - SQLServerCentral[^]

Для получения более подробной информации, пожалуйста, смотрите: Приведение и преобразование (Transact-SQL) - SQL Server | Microsoft Docs[^]


Рейтинг:
16

OriginalGriff

А вы пробовали

SELECT FORMAT (GETDATE(), 'MM/dd/yyyy ') AS Date


Вы понимаете, что форматирование применяется только к датам в строках - датам, которые подготовлены для представления пользователю в той или иной форме. Никакое форматирование, применяемое к столбцу DATE, DATETIME или DATETIME2, не будет сохранено, поскольку даты хранятся в виде количества тиков с определенного момента времени, а не в виде значения "дата".