[英]How can I subtract a user input value from a value in a MySQL table only if the value in the field is equal to or greater than the input value?
[英]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.