我有一个MySQL表
Create table temp_table (
Tmp_id int(10) auto_increment,
paid tinyint default 0,
date_received DATETIME NULL,
PRIMARY KEY (Tmp_id)
)
我想查询所有已支付= 0的记录,但我希望结果是pay = 0的结果为真的。
例如,财务部门可以查看简短的记录列表,仅显示必要的月份。
感谢您的帮助。
答案 0 :(得分:1)
您可以使用以下内容获取月份和年份:
SELECT YEAR(Date_Received) AS `Year`,
MONTH(Date_Received) AS `Month`,
COUNT(*) AS Records
FROM Temp_Table
WHERE Paid = 0
GROUP BY YEAR(Date_Received), MONTH(Date_Received);
或者如果您想将其保留为日期格式,可以使用:
SELECT DATE_FORMAT(Date_Received,'%Y-%m-01') AS MonthStart
FROM Temp_Table
WHERE Paid = 0
GROUP BY DATE_FORMAT(Date_Received,'%Y-%m-01');
这将简单地将所有日期转换为该月的第一天,因此2013年11月的所有记录将显示为2013-11-01,如果您想将日期发送到您的应用程序层,这样很方便,这样您仍然可以编写它作为日期(例如更改语言/显示格式)。