2016-08-04 4 views
0

Я пытаюсь выполнить очень элементарный поиск всех строк таблицы для конкретной даты в улье.как выбрать конкретную дату из таблицы улья

Мой формат таблицы выглядит следующим образом:

создать таблицу table1 ( текст идентификатор, col1 текст );

Значения id не имеют значения, но значения col1 равны дате с YYYY/MM/dd HH: mm: ss GMT-0000.

select count (*) from table1 where unix_timestamp(col1,"yyyy/MM/dd")="2016/07/07"; 

этот столбец col1 в формате строки и содержит данные, такие как «2016/01/01 03:04:05 GMT-0000»

я получаю 0 строк, даже несмотря на то должны быть как 100 строк с этой датой. Я не знаю, какая версия улья у меня есть. Пожалуйста, покажи мне свет.

Спасибо!

+0

Попробуйте выберите COUNT (*) от table1 где col1 как "% 2016/07/07"; – rUCHit31

+0

@ rUCHit31 Ваше предложение работает со столбцами, которые находятся в формате даты и времени. Но, похоже, это не столбец, где это строка. – wizengeeky

+0

как хорошо работает со строкой, вы можете дать свою схему, я попробую в командной строке улья – rUCHit31

ответ

0

Использование substring_index функция.

Поскольку есть время между датой и временем, вы можете использовать его, как показано ниже.

выберите отсчет (*) от table1 SUBSTRING_INDEX (col1, '', 1)

0

UNIX_TIMESTAMP(string) возвращение Отметка времени Unix этой строки даты.

Здесь в вашем запросе вы сопоставили временную метку с строкой даты.

Ваш запрос должен выглядеть

select count (*) from table1 where from_unixtime(unix_timestamp(col1,"yyyy/MM/dd")) = "2016/07/07" ;