SQL: преобразование даты и времени в формате UTC и целого числа в дату в Google BigQuery

Вход:

ДатаВремя Дата 2020-12-18 21:36:41 UTC 20200506 2020-12-19 20:35:41 UTC 20200508

Выход:

ДатаВремя Дата 2020-12-18 2020-05-06 2020-12-19 2020-05-06

Не помечайте никакие старые СУБД; MySQL, PostgreSQL, SQL Server, Google BigQuery — все это совершенно разные продукты. Отметьте РСУБД, которую вы действительно используете, и только эту РСУБД; их не 4. Не забывайте также, что при размещении вопроса задайте вопрос, покажите свои попытки и объясните, почему они не сработали или как насчет проведенного вами исследования, которое вы не поняли.

Thom A 21.12.2020 10:01

а когда дело доходит до даты/времени, многие продукты далеки от совместимости с ANSI SQL, поскольку имеют свои собственные функции.

jarlh 21.12.2020 10:16
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
4
2
335
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуй это:

SELECT  CONVERT(DATE,DateTime_Col),CONVERT(DATE, CONVERT(VARCHAR(10), Date_Col))
FROM TAB

Будет ли это работать в BigQuery?

user8930160 21.12.2020 09:59

Нет идей - я пробовал это в SSMS

Thiyagu 21.12.2020 10:05

Нет проблем, спасибо за быстрый ответ.

user8930160 21.12.2020 10:13

Будет ли это работать в BigQuery?

В BigQuery вы должны использовать функцию DATE(datetime_expression):

SELECT DATE(DateTime) DateTime, Date
FROM src_table;
Ответ принят как подходящий

Предполагая, что вас интересуют только даты UTC, вы можете преобразовать значения в даты и использовать date_diff():

select date_diff(date(datetime), 
                 parse_date('%Y%m%d', date),
                 day)

Это предполагает, что «дата» хранится в виде строки. Если это число:

select date_diff(date(datetime), 
                 parse_date('%Y%m%d', cast(date as string)),
                 day)

Если вы заботитесь о часовом поясе (а люди часто это делают), то вы хотите включить его в преобразование в дату:

select date_diff(date(datetime, 'America/New_York'), 
                 parse_date('%Y%m%d', date),
                 day)

Другие вопросы по теме