У меня есть таблица базы данных mysql с именем POST
.
Одним из полей является отметка времени, установленная по умолчанию на текущую временную метку на сервере mysql при создании записи.
Мне нужен SQL-запрос для извлечения всех строк с меткой времени в течение определенного месяца. То есть все записи за март или все записи за ноябрь и т. Д.
вы должны использовать monthname ()
select * from thetable where monthname(date_field) = 'February'
или month (), но эта функция вернет число
select * from thetable where month(date_field) = 2
Использование:
SELECT p.* FROM POST p WHERE p.date BETWEEN '2011-03-01' AND DATE_SUB('2011-04-01', INTERVAL 1 SECOND)
Это будет использовать индекс, если он существует в POST.date
, когда использование функции (IE: MONTHNAME, MONTH) в столбце POST.date
не будет.
Вы можете использовать имя месяца ():
select * from post where monthname(date) = 'February'