获取当月记录[重复]
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-25
和 2016-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 请提供答案以上是关于获取当月记录[重复]的主要内容,如果未能解决你的问题,请参考以下文章