获取数据大于等于今天的日期

时间:2019-04-08 07:16:48

标签: php mysql codeigniter codeigniter-3

我想从今天的日期(或大于等于今天的日期)获取所有数据。但是它显示了今天日期之前和之后的所有日期。 见下图: enter image description here

我的提取查询是:       SELECT * FROM tbl_reservation_info WHERE ri_id !='' AND status = 'Success' AND ri_arrival_date > '08-Apr-2019'

3 个答案:

答案 0 :(得分:1)

您的日期不是有效的MySQL日期格式(该列可能是VARCHAR或类似名称),并且将它们作为字符串进行比较。由于您所有的日期都以123开头,因此它们都大于(使用字符串比较)以0开头的日期字符串。您需要转换格式才能正确比较:

SELECT * 
FROM tbl_reservation_info
WHERE ri_id !='' 
  AND status = 'Success' 
  AND STR_TO_DATE(ri_arrival_date, '%d-%b-%Y') > STR_TO_DATE('08-Apr-2019', '%d-%b-%Y')

答案 1 :(得分:1)

通常,日期以以下格式保存:YYYY-MM-DD 也许您的php-myadmin以这种方式或

您应该将其从varchar / text更改为日期,否则排序和过滤将很复杂。另外,您的代码也应使用这种格式-为了显示您需要对其进行转换。

在屏幕截图中,过滤的12大于过滤的8。

2019年3月12日> 8 *

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-type-overview.html

https://www.php.net/manual/de/function.date.php

答案 2 :(得分:1)

您可以尝试CURDATE()

SELECT * 
FROM tbl_reservation_info 
WHERE ri_id !='' AND status = 'Success' AND  ri_arrival_date > CURDATE();

以此跳过今天的日期。如果您希望他们添加>=

确保ri_arrival_date的格式为date