Как преобразовать в формат даты, например «январь 2024 года», в T-SQL?

Я пытаюсь преобразовать дату и время в такой формат, как «январь 2024 года».

Мне удалось преобразовать формат даты и времени в дату, используя:

Convert(date, [ProcessingDate]).

Результат у меня как "2024-01-01"

Как мне преобразовать это в «январь 2024 года» в T-SQL?

Причина, по которой я пытаюсь создать этот формат, заключается в том, что мне нужно объединить его с другим varchar/текстом в T-SQL, который будет использоваться в раскрывающемся меню на уровне представления PowerBI.

Например: Я пытаюсь создать выпадающее меню следующим образом:

...
April 2014 

May 2024

Current = June 2014

Итак, я пытаюсь объединить с помощью «Current =»

Внизу — то, что у меня есть на данный момент в PowerBI (май 2024 года как последний/текущий месяц).

Форматирование даты и времени является проблемой уровня представления и не должно использоваться в SQL. Хотя мы можем дать вам ответ на ваш вопрос, нам бы хотелось сначала узнать, почему вы хотите это сделать, на случай, если вы совершите более серьезную ошибку.

Dai 22.06.2024 00:41

@Dai Я обновил свой первоначальный вопрос.

Java 22.06.2024 00:52

«Мне нужно объединиться с другим varchar/текстом, который будет использоваться в раскрывающемся меню на уровне представления PowerBI». - Однако вы должны сделать это в PowerBI.

Dai 22.06.2024 00:54

@Dai Я пытаюсь объединиться с другими таблицами для получения того же результата, например «Текущий = июнь 2024 года». Итак, я пытаюсь сначала сделать все на SQL, прежде чем переносить данные в PowerBI.

Java 22.06.2024 00:57
Работа с датами и временем в языке Java
Работа с датами и временем в языке Java
Работа с датами и временем в языке Java была сильно переработана начиная с версии Java 8 и далее с появлением библиотеки java.time.
0
4
174
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На самом деле это довольно просто, если вы еще не нашли ответ.

FORMAT(Convert(date, [ProcessingDate]), 'MMMMMMMMM yyyy');

Возможно, вы захотите удалить синтаксис, специфичный для SQL Server, и использовать:

FORMAT(CAST([ProcessingDate] as DATE), 'MMMMMMMMM yyyy');

Ознакомьтесь с этой статьей stackoverflow постом о CAST и CONVERT

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

FORMAT(CAST([ProcessingDate] as DATE), 'MMMMMMMMM yyyy', 'en-US');

Другие вопросы по теме