2014-11-01 5 views
1

Привет Я использую BigQuery и у меня есть большой стол с датами, вставленных в формате дд/мм/гггг чч: ммдата Формат в дб правильно

Я хочу, чтобы фильтровать это поле по диапазону дат (т.е. даты для октября), но из-за форматирования я не могу заставить его работать. Любая помощь будет оценена!

Спасибо,

Nik

ответ

1

Вы бы сделать данные проще работать с помощью ручного преобразования в родной тип временной метки BigQuery в.

SELECT r1, TIMESTAMP(CONCAT(SUBSTR(r1, 6, 4),"-", 
SUBSTR(r1, 3, 2), "-", SUBSTR(r1, 0, 2), SUBSTR(r1, 10), ":00")) AS `time` 
FROM `myTable` WHERE <insert your conditions here>; 

Обратите внимание, что такой запрос выполняется довольно медленно, так как вся таблица должна быть отсканирована. Вы можете сделать этот запрос намного быстрее, вставив данные из преобразования в другую строку в таблицу (например, используя временные метки в этой другой строке). Если вы сделаете это, база данных сможет использовать свои собственные индексы для выполнения ваших сравнений, что ускорит большинство запросов.

+0

это прекрасный !! Огромное спасибо!! –