我有一个名为payment的mysql表,其中有一个名为next_due_date的字段,它以yyyy-mm-dd
格式保存用户手动输入的日期值,类型为VARCHAR。我试过了
select * from payment where next_due_date >= '$strtdate' AND next_due_date <= '$endDate';
$strtdate
保留当前日期,$endDate
保留当前日期30天之前的日期值。
答案 0 :(得分:1)
逻辑问题 - 您要求记录next_due_date在今天之后以及next_due_date在30天之前的位置。考虑一下,你会明白为什么你没有记录:)
你可能想要更像的东西:
select * from payment where next_due_date <= '$strtdate' AND next_due_date >= '$endDate';
虽然这仍然看起来很奇怪 - 可能是因为而不是:
“$ strtdate持有当前日期,$ endDate在当前日期30天之前保留日期值。”
也许你想要:
$ strtdate现在持有30天 ,$ endDate持有当前日期。
然后你可以:
来自付款,其中next_due_date&gt; ='$ strtdate'和next_due_date&lt; ='$ endDate';
答案 1 :(得分:0)
如果您确保strtdate和enddate采用yyyy-mm-dd格式,则以下内容应该有效:
select * from payment where next_due_date <= '$strtdate' AND next_due_date <= '$endDate';
我假设您要选择截止日期在开始日期和结束日期范围内的记录吗?