Hướng dẫn filter data between two dates in php - lọc dữ liệu giữa hai ngày trong php

Bạn đang gây rối với các tiêu chuẩn MySQL.

  • Điều nắm tay bạn nên lưu trữ các ngày trong các kiểu dữ liệu gốc MySQL ____ ____ 6, ________ 7 hoặc timestamp

  • Bất kỳ giá trị ngày đầu vào nào bạn gửi đến MySQL nên được chuyển đổi thành định dạng yyyy-mm-dd.

Vì vậy, trước tiên bạn cần chuyển đổi ngày đầu vào của mình đúng sang định dạng trên một cái gì đó như bên dưới giả sử ngày đầu vào của bạn cũng ở định dạng ____1010.

$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"];

Sử dụng

mysql> select str_to_date['08-01-2015','%d-%m-%Y'] as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set [0.10 sec]
1, bạn có thể chuyển đổi bất kỳ định dạng nào từ đầu vào.

Tiếp theo trong truy vấn của bạn, ngày là Varchar với định dạng

mysql> select str_to_date['08-01-2015','%d-%m-%Y'] as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set [0.10 sec]
0 và nó không phải là một ngày thực sự, vì vậy bạn cần chuyển đổi thành ngày thực. Chức năng
mysql> select str_to_date['08-01-2015','%d-%m-%Y'] as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set [0.10 sec]
3 làm điều đó cho bạn như

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

Vì vậy, truy vấn sẽ là

$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]]; 

Được gửi bởi Nurhodelta_17 vào thứ Hai, ngày 25 tháng 1 năm 2021 - 11:47.

Hướng dẫn này sẽ chỉ cho bạn cách chọn hàng MySQL giữa hai ngày được nhập. Hướng dẫn này không bao gồm một thiết kế tốt nhưng sẽ cung cấp cho bạn kiến ​​thức về chủ đề đã nói. Tôi cũng đã bao gồm 2 phương thức MySQLI được định hướng đối tượng và thủ tục trong các bình luận. Vì vậy, hãy thoải mái chuyển đổi giữa họ.

Tạo cơ sở dữ liệu của chúng tôi

Đầu tiên, chúng tôi sẽ tạo một cơ sở dữ liệu chứa dữ liệu của chúng tôi.

  1. Mở phpmyadmin.
  2. Nhấp vào cơ sở dữ liệu, tạo cơ sở dữ liệu và đặt tên nó là "giữa".
  3. Sau khi tạo cơ sở dữ liệu, nhấp vào SQL và dán mã dưới đây. Xem hình ảnh dưới đây để được hướng dẫn chi tiết.

Chèn dữ liệu vào cơ sở dữ liệu của chúng tôi

Bước tiếp theo để chèn một số dữ liệu vào cơ sở dữ liệu của chúng tôi. Điều này sẽ phục vụ như tài liệu tham khảo của chúng tôi khi chúng tôi chọn ngày của chúng tôi.

  1. Nhấp vào cơ sở dữ liệu "giữa" mà chúng tôi đã tạo trước đó.
  2. Nhấp vào SQL và dán mã bên dưới.

  1. ['nurhodelta', '2020-08-22 07:10:00'],

  2. ['lee', '2020-05-22 08:30:00'],

  3. ['nurhodelta', '2020-08-22 13:15:00'],

  4. ['lee', '2020-03-22 14:00:00'],

  5. ['nurhodelta', '2020-05-16 10:30:00'],

  6. ['lee', '2020-08-15 20:00:00'];

Tạo kết nối của chúng tôi

Bước tiếp theo là tạo kết nối cơ sở dữ liệu và lưu nó dưới dạng "Conn.Php". Tệp này sẽ đóng vai trò là cầu nối giữa hình thức của chúng tôi và cơ sở dữ liệu của chúng tôi. Để tạo tệp, hãy mở trình chỉnh sửa mã HTML của bạn và dán mã bên dưới sau thẻ.

Tạo biểu mẫu và bảng của chúng tôi

Cuối cùng, chúng tôi tạo bảng đăng nhập, biểu mẫu và bảng kết quả của chúng tôi trên một trang. Để tạo trang, hãy mở trình chỉnh sửa mã HTML của bạn và dán mã bên dưới sau thẻ. Chúng tôi đặt tên trang này là "index.php".

  1. How to Select MySQL Table between Two Dates in PHP

  2. Login Table

  3. UserID

  4. Username

  5. Login Date


  • From:

  • To:

  • Data Between Selected Dates

  • UserID

  • Username

  • Login Date

  • Bài Viết Liên Quan

    Chủ Đề