Вход:
Выход:
а когда дело доходит до даты/времени, многие продукты далеки от совместимости с ANSI SQL, поскольку имеют свои собственные функции.
Попробуй это:
SELECT CONVERT(DATE,DateTime_Col),CONVERT(DATE, CONVERT(VARCHAR(10), Date_Col))
FROM TAB
Будет ли это работать в BigQuery?
Нет идей - я пробовал это в SSMS
Нет проблем, спасибо за быстрый ответ.
Будет ли это работать в 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)
Не помечайте никакие старые СУБД; MySQL, PostgreSQL, SQL Server, Google BigQuery — все это совершенно разные продукты. Отметьте РСУБД, которую вы действительно используете, и только эту РСУБД; их не 4. Не забывайте также, что при размещении вопроса задайте вопрос, покажите свои попытки и объясните, почему они не сработали или как насчет проведенного вами исследования, которое вы не поняли.