获取当月记录[重复]

Posted

技术标签:

【中文标题】获取当月记录[重复]【英文标题】:Get records of current month [duplicate] 【发布时间】:2014-02-12 03:49:40 【问题描述】:

如何从 mysql 数据库的表中选择当前月份记录?

就像现在一样,当前月份是一月。我想得到一月份的记录,我的表列的数据类型是timestamp。我想知道sql查询。

谢谢

【问题讨论】:

***.com/questions/16500527/… 【参考方案1】:

查看MySQL Datetime函数:

试试这个:

SELECT * 
FROM tableA 
WHERE YEAR(columnName) = YEAR(CURRENT_DATE()) AND 
      MONTH(columnName) = MONTH(CURRENT_DATE());

【讨论】:

错误:将为每一行计算MONTH()。最好尝试在列上进行范围比较。 @Sebastian 请提供答案 @Sebastian 为什么不提供答案? 页面顶部有两个重复链接。两者都提供了很好的答案。我为什么要添加另一个?无论如何:添加重复问题的答案是不可能的。 select * from t.stuff where date between DATE_FORMAT(NOW(),"%Y-%m-01") and LAST_DAY(NOW());【参考方案2】:

这个查询应该适合你:

SELECT *
FROM table
WHERE MONTH(columnName) = MONTH(CURRENT_DATE())
AND YEAR(columnName) = YEAR(CURRENT_DATE())

【讨论】:

这不太正确。如果我有 2015-12-252016-12-30 的记录,它们都会被选中,我认为这不是预期的行为。请尝试以下@saharsh-shah 的解决方案。 错误:将为每一行计算MONTH()。最好尝试在列上进行范围比较。 @Sebastian 请提供答案 该问题被标记为重复,请参阅链接问题。无法添加新答案。您应该选择columnName > "2017-11-01 00:00:00" @Pila 的评论当时是准确的,但此后已针对查询更新了答案以产生正确的功能。【参考方案3】:

试试这个查询:

SELECT *
FROM table 
WHERE MONTH(FROM_UNIXTIME(columnName))= MONTH(CURDATE())

【讨论】:

错误:将为每一行计算MONTH()。最好尝试在列上进行范围比较。 @Sebastian 请提供答案

以上是关于获取当月记录[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取当前日期时间,获取当月最后一天

javascript获取当月有多少天的疑问

java中如何获取某个日期是当月的最后一天

获取从当月第一天到今天的天数 Swift

获取当月每一天

java获取当月天数,指定年月的天数,指定日期获取对应星期 .