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


How can I compare month and year in sql statment?

在我的数据库中,有一个名为"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日)起将不会注册,而不是2月(2日)。

在代码中组合月份和年份:

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

然后与该值进行比较:

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

如果日期id类型为"date"(YYY mm-dd),则这就足够了

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

如果日期是"日期时间"或"时间戳",请尝试:

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