Как преобразовать «2020-06-15» в «2020-06» в postgreSQL (в примере BigQuery)? - PullRequest
0 голосов
/ 16 июня 2020

Желаемый результат: замените дату 2020-06-15 на строку, которая читает 2020-06

В BigQuery Standard SQL работает следующее:

SELECT
CONCAT( 
      CAST( EXTRACT(YEAR FROM date) ) AS STRING, '-', CAST( EXTRACT(MONTH FROM date) AS STRING)
      ) as year_date
FROM 
table

Это дает вам «20202-06» в BigQuery. В PostgreSQL я получаю следующую ошибку:

ОШИБКА: функция concat (изменяющийся символ, «неизвестно», изменяющийся символ) не существует

Я перепробовал все разбирается с этим и все еще не может получить правильный ответ. например,

concat(extract(year from date)::text, '-', extract(month from date)::text ) as year_date
concat(cast(extract(year from date) as varchar(16)), '-', cast(extract(month from date) as varchar(16)) ) as year_date,

Однако я все еще получаю ту же ошибку?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Используйте to_char для форматирования дат, отметок времени и чисел.

# select to_char('2020-06-15'::date, 'YYYY-MM');
 to_char 
---------
 2020-06
0 голосов
/ 16 июня 2020

Примерно так:

SELECT
CONCAT( 
      CAST( EXTRACT(YEAR FROM current_date)  AS varchar), '-', CAST( EXTRACT(MONTH FROM current_date) AS varchar)
      ) as year_date;
 year_date 
-----------
 2020-6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...