Bigquery преобразует строку datetime с часовым поясом

Таблица с терабайтами данных в bigquery имеет несколько столбцов, заданных как строковый формат, но на самом деле они содержат строки даты и времени, например

2016-10-24 15:00:00

Я попытался ответить от эта ссылка, чтобы преобразовать (CAST) поля в формат временной метки, как показано ниже.

SELECT
   CAST( MURDER_DATE AS TIMESTAMP) AS CONVERTED_MURDER_DATE, *
FROM `death_list`;

Это работает, но преобразует все строки в метки времени с часовым поясом UTC, как показано ниже.

2007-03-23 15:00:00.000 UTC

Мне нужны данные в другом часовом поясе. Есть подсказка?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
3 214
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте использовать

DATETIME(CAST( MURDER_DATE AS TIMESTAMP), "Australia/Sydney"))

На мой взгляд, это текущее ограничение BigQuery:

  • Тип Отметка времени всегда хранится в формате UTC. И у вас нет возможности добавить к нему информацию о часовом поясе.
  • Дата и время не хранит никакой информации о часовом поясе. У вас все еще может быть внутреннее соглашение в вашей команде / компании, в котором говорится, что все столбцы Datetime хранятся в вашем местном часовом поясе, но я лично нахожу это очень неудобным.

На данный момент в нашей компании мы решили хранить все в Timestamp (то есть в формате UTC), и мы никогда не используем Datetime из-за отсутствия точности относительно часового пояса. Затем, если клиент хочет получить информацию в другом часовом поясе, он должен выполнить преобразование при чтении данных.

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