如何从一个在mysql中存储为varchar的字段中获取日期和日期之间的日期

时间:2011-11-16 12:44:21

标签: mysql

我有一个名为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天之前的日期值。

2 个答案:

答案 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';

我假设您要选择截止日期在开始日期和结束日期范围内的记录吗?