2014-12-12 4 views
-1

У меня есть 2 элемента в таблице «our_videos», в колонке «datemade» одна из их дат «2014-11-21 12:00:00», другая - «2014-11- 22 12:00:00" , я пытаюсь выбрать оба из них (выбор ежемесячных данных) с помощью команды SQLПроблемы с базой данных SQL

SELECT * FROM our_videos WHERE YEAR(datemade) = YEAR(NOW()) AND MONTH(datemade)= MONTH(NOW()) 

И я получаю это:

MySQL вернула пустой результирующий набор (т.е. нулевые строки). (Запрос занял 0.0004 сек.)

Что было бы правильным способом выбрать данные этого месяца?

+4

Выбор правильного месяца может быть полезным. Мы сейчас в декабре :) –

+1

Вы абсолютно уверены, что текущий месяц - ноябрь?/Извините, мне так медлительно прокомментировать/ – Arvo

+0

О, я сейчас чувствую себя глупым духом, да, я думал, что эта команда выбирает последние 30 дней, я так сильно лечу сейчас, когда я обманываю, спасибо, ребята. Позор идет следовать за мной навсегда: D – dnccc12333

ответ

0

Текущий месяц - декабрь, который составляет 12. Это то, что вы хотите?

SELECT * 
FROM our_videos 
WHERE YEAR(datemade) = YEAR(NOW()) AND MONTH(datemade) = MONTH(NOW()) - 1; 
----------------------------------------------------------------------^ 

Кстати, если вы перефразировать пункт where, запрос может использовать индекс:

WHERE datemade >= date_sub(date_sub(date(now()), interval day(now()) - 1 day), interval 1 month) 
     datemade < date_sub(date(now()), interval day(now()) - 1 day)