Redshift SQL, конкатинация жало и год - PullRequest
0 голосов
/ 27 марта 2020

У меня есть 2 переменные: месяц и год. Месяц - это строка, которая выглядит следующим образом: март, апрель, май, июнь и т. Д. c ... Год - это число: 2019, 2020

Я попытался объединить оба, но он показал синтаксическую ошибку.

`month`||`-`||`year` as Month_Year

То, что я хочу получить, это либо Месяц-ГГГГ, либо ДД-ММ-ГГГГ

current_date - Interval '1 Month'

Но на языке Redshift SQL Чтобы сделать его более понятным, я пытаюсь сгенерировать 3-й столбец. По текущей дате: enter image description here

Ответы [ 2 ]

2 голосов
/ 27 марта 2020

MySQL не использует || в качестве оператора конкатенации. Вместо этого используйте функцию concat(). И строковый литерал должен быть заключен в одинарные кавычки, а не в кавычки.

concat(`month`, '-', `year`)
0 голосов
/ 27 марта 2020

В mysql вы должны использовать now () в качестве текущей даты, указать день и сопоставить месяц и год, это не приведет к действительной дате mysql в форме гггг-мм-дд.

drop table if exists t;
create table t
(yr int,mth varchar(3));

insert into t values
(2019,'Nov'),
(2019,'Dec'),
(2020,'Jan'),
(2020,'Feb'),
(2020,'Mar');


select concat(day(now()),'-',mth,'-',yr)
from t;

+-----------------------------------+
| concat(day(now()),'-',mth,'-',yr) |
+-----------------------------------+
| 27-Nov-2019                       |
| 27-Dec-2019                       |
| 27-Jan-2020                       |
| 27-Feb-2020                       |
| 27-Mar-2020                       |
+-----------------------------------+
5 rows in set (0.001 sec)

Не забудьте, что вам понадобится код для високосных лет ..

...