繁体   English   中英

如何显示大于或等于mysql表列月份的数据?

[英]How can I show data which is greater than or equal to mysql table column month?

我在clients表中有2列(还有更多列)。

conn_date     bill_date
=======================
2016-08-25    2016-09-04
2016-08-01    2016-09-03
2016-08-08    2016-09-01
2016-08-09    2016-09-01

现在,我想显示所有数据(如果所选月份为=(等于)或大于conn_date 我可以从html select标签中获取选定的月份,例如:1、2、9。

为此,我使用以下查询,但显示的数据少于conn_date

"SELECT cbp.advance_amount, cbp.bill_month, cbp.due_amount, cbp.pay_amount, c.is_active, c.client_id, c.user_id, c.address, c.contact_no, zone.zone_name, package.package_name, c.monthly_bill, c.bill_date FROM clients 
AS c LEFT JOIN zone ON zone.zone_id = c.zone_id 
LEFT JOIN package ON package.package_id = c.package_id 
LEFT JOIN clients_pay_bill AS cbp ON cbp.client_id = c.client_id 
WHERE c.uid = '$uid' AND c.is_active = 1 
AND MONTH(c.conn_date) > $selected_month 

使用print_r

SELECT cbp.advance_amount, cbp.bill_month, cbp.due_amount, cbp.pay_amount,
c.is_active, c.client_id, c.user_id, c.address, c.contact_no, zone.zone_name, package.package_name, c.monthly_bill, c.bill_date 
FROM clients AS c 
LEFT JOIN zone ON zone.zone_id = c.zone_id 
LEFT JOIN package ON package.package_id = c.package_id 
LEFT JOIN clients_pay_bill AS cbp ON cbp.client_id = c.client_id 
WHERE c.uid = '6' AND c.is_active = 1 
AND MONTH(c.conn_date) > 4 AND c.zone_id != '' 
ORDER BY c.client_id DESC 

所选月份图片

在此处输入图片说明

基本上,我想显示的数据不小于所选月份的conn_date

的mysql查询是

SELECT * FROM clients WHERE MONTH(conn_date)<='".$selected_month."' 

从问题的描述中,听起来像是您想要的:

select c.*
from clients c
where conn_date >= str_to_date(concat(date_format(now(), '%Y-%m'), '-01'))

返回的日期大于当前时间。 如果要特定年份的特定月份:

select c.*
from clients c
where conn_date >= str_to_date(concat_ws('-', $year, $month, '01'))

我不确定您的查询会做什么,因为它使用了问题中未提及的几个表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM