Как «объединить» текст и функцию в SQL Redshift? - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть следующий фильтр, который я пытаюсь добавить в свой запрос, но я знаю, что в настоящий момент он некорректен:

WHERE plan_start_week=(date_part(w, CURRENT_DATE)-1)+1

По сути, я хочу, чтобы выше было сказано plan_start_week = "2020-06" (06 текущая неделя года). Тем не менее, в данный момент он вернет plan_start_week = 6. Мне нужно добавить «2020-», чтобы он был перед цифрой 6, так как данные в столбце, который я получаю, имеют формат «YYYY-WW». Функция concatenate объединяет текстовые строки, но могу ли я использовать это для выполнения вышеуказанного?

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Вы можете сделать это следующим образом:

select cast((date_part(y, CURRENT_DATE)) as int) || '-' || right('0' || cast((date_part(w, CURRENT_DATE)) as int),2)

Вывод:

2020-06

0 голосов
/ 06 февраля 2020

Для функции to_char() определены маски даты: Строки формата даты и времени

на основе этого использования to_char(current_date,'YYYY-WW') для получения желаемого результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...