PHP代码在两个日期之间过滤数据

varsha bajpai

我创建了一个报告,其中需要过滤两个日期之间的数据。

Column name

bookingdate - varchar 

format --dd-mm-yyyy

下面是我的代码。这行得通,但可以获取所有数据,因为我认为我的bookingdate过滤器无法正常工作。

我的代码中是否需要任何日期转换?

if($_POST['fromdate']!='' && $_POST['todate']!='')
    {   
    $fromdate = $_POST['fromdate']; 
    $todate = $_POST['todate'];
    $cityname = $_SESSION['Auth']['city'];
    $data = $database->getRows("SELECT *, GROUP_CONCAT(coupon) as cou,GROUP_CONCAT(coupondate) as coupondt FROM receipt_entry WHERE city_name = :cityname AND bookingdate BETWEEN :fromdate AND :todate GROUP BY book_no,receipt_no order by bookingdate asc"
    ,array(':fromdate'=>$fromdate,':todate'=>$todate,':cityname'=>$cityname)); 
    } 
阿比克·查克拉博蒂(Abhik Chakraborty)

您搞砸了mysql标准。

  • 首先,您应该将日期存储在mysql native数据类型中datedatetime或者timestamp

  • 您发送给mysql的任何输入日期值都应转换为yyyy-mm-dd格式。

因此,首先需要将输入日期正确转换为上述格式,并假设您的输入日期也采用以下dd-mm-yyyy格式。

$fromdate = $_POST['fromdate']; 
$todate = $_POST['todate'];

$formdate_r = DateTime::createFromFormat('d-m-Y', $fromdate);
$todate_r = DateTime::createFromFormat('d-m-Y', $todate);

// This will have yyyy-mm-dd format
$formdate_sql = $formdate_r->format("Y-m-d"); 
$todate_sql = $todate_r->format("Y-m-d");

使用DateTime::createFromFormat可以从输入转换任何格式。

查询中的下一个日期是格式为varchar的日期,dd-mm-yyyy而不是实际日期,因此您需要转换为实际日期。该功能str_to_date为您做到

mysql> select str_to_date('08-01-2015','%d-%m-%Y') as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set (0.10 sec)

因此查询将为

$data = $database->getRows("SELECT *, 
                    GROUP_CONCAT(coupon) as cou,
                GROUP_CONCAT(coupondate) as coupondt 
                FROM receipt_entry 
                WHERE city_name = :cityname 
                AND str_to_date(bookingdate,'%d-%m-%Y') BETWEEN :fromdate AND :todate 
                GROUP BY book_no,receipt_no order by bookingdate asc
            ",array(':fromdate'=>$formdate_sql,':todate'=>$todate_sql,':cityname'=>$cityname)); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在两个日期之间过滤MYSQL

来自分类Dev

返回两个日期之间的数据

来自分类Dev

返回两个日期之间的数据

来自分类Dev

在Django Orm中的两个日期之间过滤日期

来自分类Dev

PHP的两个日期之间的时间是

来自分类Dev

php代码回显两个日期之间的所有日期

来自分类Dev

在两个日期选择器之间过滤数据表

来自分类Dev

如何基于两个日期之间过滤的时间创建新的数据框

来自分类Dev

过滤两个不同日期范围之间的pyspark数据框行

来自分类Dev

如何使用雄辩的Laravel过滤两个日期之间的数据?

来自分类Dev

使用angularjs在两个选定日期之间过滤表数据时遇到问题

来自分类Dev

NSPredicate在两个NSString类型的日期之间进行过滤

来自分类Dev

创建宏以在两个日期之间进行过滤VBA

来自分类Dev

获取日期格式未知的两个日期之间的数据

来自分类Dev

PHP:两个日期之间的返回日期错误

来自分类Dev

来自两个日期列数据库的两个日期之间的 Laravel 查询

来自分类Dev

PHP中数据库中两个日期之间的差异

来自分类Dev

尝试根据用户输入使用ajax和php在两个日期之间加载数据

来自分类Dev

如何在PHP codeingiter中检索两个日期之间的数据?

来自分类Dev

如何在PHP Laravel中的两个日期之间从db获取所有数据?

来自分类Dev

如何获取两个日期之间的所有月份数据php

来自分类Dev

如何在 vb.net WPF 和 MySQL 中使用 DataGrid 获取/过滤两个日期之间的数据?

来自分类Dev

如何在两个日期之间查找数据

来自分类Dev

每天列中两个日期之间的数据

来自分类Dev

Rethinkdb查询两个日期之间的数据

来自分类Dev

优化两个日期之间的BigQuery汇总数据

来自分类Dev

查询以选择两个日期之间的数据

来自分类Dev

在Laravel中检索两个日期之间的数据

来自分类Dev

在mysql中的两个日期之间获取数据

Related 相关文章

  1. 1

    在两个日期之间过滤MYSQL

  2. 2

    返回两个日期之间的数据

  3. 3

    返回两个日期之间的数据

  4. 4

    在Django Orm中的两个日期之间过滤日期

  5. 5

    PHP的两个日期之间的时间是

  6. 6

    php代码回显两个日期之间的所有日期

  7. 7

    在两个日期选择器之间过滤数据表

  8. 8

    如何基于两个日期之间过滤的时间创建新的数据框

  9. 9

    过滤两个不同日期范围之间的pyspark数据框行

  10. 10

    如何使用雄辩的Laravel过滤两个日期之间的数据?

  11. 11

    使用angularjs在两个选定日期之间过滤表数据时遇到问题

  12. 12

    NSPredicate在两个NSString类型的日期之间进行过滤

  13. 13

    创建宏以在两个日期之间进行过滤VBA

  14. 14

    获取日期格式未知的两个日期之间的数据

  15. 15

    PHP:两个日期之间的返回日期错误

  16. 16

    来自两个日期列数据库的两个日期之间的 Laravel 查询

  17. 17

    PHP中数据库中两个日期之间的差异

  18. 18

    尝试根据用户输入使用ajax和php在两个日期之间加载数据

  19. 19

    如何在PHP codeingiter中检索两个日期之间的数据?

  20. 20

    如何在PHP Laravel中的两个日期之间从db获取所有数据?

  21. 21

    如何获取两个日期之间的所有月份数据php

  22. 22

    如何在 vb.net WPF 和 MySQL 中使用 DataGrid 获取/过滤两个日期之间的数据?

  23. 23

    如何在两个日期之间查找数据

  24. 24

    每天列中两个日期之间的数据

  25. 25

    Rethinkdb查询两个日期之间的数据

  26. 26

    优化两个日期之间的BigQuery汇总数据

  27. 27

    查询以选择两个日期之间的数据

  28. 28

    在Laravel中检索两个日期之间的数据

  29. 29

    在mysql中的两个日期之间获取数据

热门标签

归档