Я пытаюсь преобразовать дату и время в такой формат, как «январь 2024 года».
Мне удалось преобразовать формат даты и времени в дату, используя:
Convert(date, [ProcessingDate]).
Результат у меня как "2024-01-01"
Как мне преобразовать это в «январь 2024 года» в T-SQL?
Причина, по которой я пытаюсь создать этот формат, заключается в том, что мне нужно объединить его с другим varchar/текстом в T-SQL, который будет использоваться в раскрывающемся меню на уровне представления PowerBI.
Например: Я пытаюсь создать выпадающее меню следующим образом:
...
April 2014
May 2024
Current = June 2014
Итак, я пытаюсь объединить с помощью «Current =»
Внизу — то, что у меня есть на данный момент в PowerBI (май 2024 года как последний/текущий месяц).
@Dai Я обновил свой первоначальный вопрос.
«Мне нужно объединиться с другим varchar/текстом, который будет использоваться в раскрывающемся меню на уровне представления PowerBI». - Однако вы должны сделать это в PowerBI.
@Dai Я пытаюсь объединиться с другими таблицами для получения того же результата, например «Текущий = июнь 2024 года». Итак, я пытаюсь сначала сделать все на SQL, прежде чем переносить данные в PowerBI.
На самом деле это довольно просто, если вы еще не нашли ответ.
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');
Форматирование даты и времени является проблемой уровня представления и не должно использоваться в SQL. Хотя мы можем дать вам ответ на ваш вопрос, нам бы хотелось сначала узнать, почему вы хотите это сделать, на случай, если вы совершите более серьезную ошибку.