如何在sql语句中比较月份和年份?

时间:2015-02-11 16:51:38

标签: php mysql

在我的数据库中,有一个名为“date”的时间戳列格式为YYYY-MM-DD

我想获得比特定月份和年份更早的结果..

例如:

$month = 02;
$year = 2015;

并获得比2015年2月更早的结果。

愚蠢地我试着做这样的事情:

SELECT * FROM table WHERE MONTH(date)<'$month' AND YEAR(date)<='$year'

但..这个查询只考虑月份数而忽略了年份。如果我的数据是2014年12月,则自12月(12)以来它将不会被注册e&gt;比二月(02)。

2 个答案:

答案 0 :(得分:0)

在代码中合并您的月份和年份:

$date = date('Y-m-d', strtotime("$year-$month-01"));

然后与该值进行比较:

SELECT * FROM table WHERE `date` <= '$date' ;

答案 1 :(得分:0)

如果日期类型为“date”(YYYY-mm-dd)

,这应该足够了
$statement = 'SELECT * FROM table WHERE  date<'.$year.$month.'01';

如果日期是“datetime”或“timestamp”trip>

$statement = 'SELECT * FROM table WHERE  date<'.$year.$month.'01000000';