Как преобразовать строковый столбец, который содержит дату и время в просто дату, используя оператор sql cast? - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть столбец с именем 'create_date', тип данных которого - строка . Он содержит записи, которые имеют дату и время шаблона. Я хочу создать еще один столбец с именем 'updated_date', который будет брать только дату из столбца 'create_date', чтобы иметь возможность выполнять некоторые математические вычисления на датах позже. Я хочу сделать это с помощью оператора SQL CAST .

Ниже показано, как я ожидаю, что результат будет ...

ID        created_date         modified_date
1      2017-11-01 16:30:40     2017-11-01
2      2017-11-23 15:30:40     2017-11-23
3      2017-11-16 14:30:40     2017-11-16

Любые предложения о том, как это сделать?

Ответы [ 3 ]

1 голос
/ 04 ноября 2019

Я предполагаю, что вы используете BigQuery.

Вы можете использовать:

select date(created_date)

Вы также можете указать более точно:

select date(substr(created_date, 1, 10))

Илипреобразовать в datetime, а затем в date:

select date(cast(created_date as datetime))
0 голосов
/ 04 ноября 2019

Ниже для стандартного SQL BigQuery

#standardSQL
SELECT *, DATE(TIMESTAMP(created_date)) modified_date
FROM `project.dataset.table`

Я хочу сделать это с помощью оператора SQL CAST.

Примечание: я не рекомендую использовать общий CAST для типов данных DATE, DATETIME, TIMESTAMP. Вместо этого вы должны использовать соответствующие функции, как в этом ответе. Или, если строка не представляет непосредственно такие типы данных - вы можете использовать соответствующую функцию PARSE_, где вы можете установить формат, в котором дата / дата / время / метка времени будут представлены в строке!

0 голосов
/ 04 ноября 2019

Вы можете использовать простые date_format () и str_to_date ()

select date_format(str_to_date(created_date,'%Y-%m-%d %T'), '%Y-%m-%d') modified_date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...