我在sql中有一个表,在该表中我的列具有此格式的操作日期:2015-08-26 05:54:39
现在我在php中构建了一个系统,我希望得到同一个月内的所有动作。
我尝试运行:
SELECT * FROM `Expenses` WHERE DateAction between '2015-08-01 00:00:00' and '2015-09-01 00:00:00'
并且它返回同月的行动日期,但是它可以返回2015-09-01 00:00:00的行动所以我知道我需要获得该月的最后一天把它放在sql查询中。
我是怎么做到的?
现在这是对sql的调用:
$query = mysql_query("SELECT * FROM `Expenses` WHERE `accountid` = $accountId");
答案 0 :(得分:3)
幸运的是,有MySQL的write()
命令。
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_month
MONTH()
所有月份均以数字记录(1月1日,2月2月,...... 12月12月)。它将始终根据您的数据库时间和日期设置精确。
如果您想进一步自定义查询(选择相同的年份和月份),那么您可以阅读有关日期命令的更多信息here
SELECT * FROM `Expenses` WHERE MONTH(DateAction) = 8;
//Selects all rows in the month "August"
答案 1 :(得分:0)
您可以使用YEAR()和MONTH()或简单如下:
WHERE
DateAction >= '2015-08-01 00:00:00'
and
DateAction < '2015-09-01 00:00:00'
这不包括9月的日期。
答案 2 :(得分:0)
我认为它可以帮到你
假设您想要8月的结果或记录,您可以使用查询
SELECT * FROM Expenses WHERE DATE_FORMAT(DateAction,'%c')='8'