我有一个名为POST
的mysql数据库表
其中一个字段是时间戳,在创建记录时设置为默认为mysql服务器上的当前时间戳。
我需要一个SQL查询来提取在特定月份内具有时间戳的所有行。也就是说,三月的所有记录,或十一月的所有记录等等。
答案 0 :(得分:16)
你必须使用monthname()
select * from thetable where monthname(date_field) = 'February'
或月(),但此函数将返回一个数字
select * from thetable where month(date_field) = 2
答案 1 :(得分:6)
使用:
SELECT p.*
FROM POST p
WHERE p.date BETWEEN '2011-03-01' AND DATE_SUB('2011-04-01', INTERVAL 1 SECOND)
如果POST.date
上存在一个索引,当使用POST.date
列上的函数(IE:MONTHNAME,MONTH)时,这将使用索引。
答案 2 :(得分:1)
您可以使用monthname():
select * from post where monthname(date) = 'February'