从当月选择记录

时间:2011-06-15 08:56:17

标签: php mysql date

我有一个名为 slldate varchar 字段的表格。该字段包含以下格式的日期:
2010-08-30
(YYYY-MM-DD)

现在我想使用mysql查询选择包含当前月份的记录。

任何?

4 个答案:

答案 0 :(得分:7)

当您使用char字段而不是日期字段时,必须转换值然后使用普通日期函数。像

SELECT * FROM table WHERE MONTH(CAST(slidate as date)) = MONTH(NOW()) AND YEAR(CAST(slidate as date)) = YEAR(NOW())

答案 1 :(得分:3)

试试这个:

SELECT * FROM table_name WHERE MONTH(slldate)= date('m')AND YEAR(slldate)= date('Y');

答案 2 :(得分:1)

  

我有一个名为slldate的varchar字段的表。该字段包含日期

然后你应该把它改成日期字段。你(应该)知道这是正确的做法。

以下方法适用于您的varchar字符串 - 但可以在某些日期进行简化。

请注意,由于您的日期字符串已经是big-endian,因此您无需强制转换它们并放弃索引优化的好处:

 SELECT *
 FROM yourtable
 WHERE slldate >= CONCAT(DATE_FORMAT('%Y-%m-', NOW()),'01')
 AND slldate < CONCAT(DATE_FORMAT('%Y-%m-', NOW() + INTERVAL 1 MONTH), '01')

答案 3 :(得分:1)

SELECT * FROM table_name WHERE YEAR(savedate)= YEAR(CURDATE())AND MONTH(savedate)= MONTH(CURDATE())