10/10/2018, 09:31

Rắc rối thống kê !

Em đang gặp rắc rối ở chỗ này :
Em có 1 table "khachhang" , trong đó file "Ngaynhan" cua em , em định dạng theo kiểu char ( vì em ko bik hàm đổi định dạng ngày tháng trong MySQL nên để kiểu char cho dễ nhập ) . Giờ em muốn thống kê từ ngày ... đến ngày ...... nhưng làm mãi mà ko đc . Pro nào giúp em với .
ngoc_viet08 viết 11:33 ngày 10/10/2018
ngày tháng có thể dùng đơn giản là varchar đi . ngày tháng có thể là dd-mm-yyyy
sau này khi query có thể dễ dàng tách string ra rồi so sánh ì xèo ...là được .
huongsisi viết 11:34 ngày 10/10/2018
Được gửi bởi ngoc_viet08
ngày tháng có thể dùng đơn giản là varchar đi . ngày tháng có thể là dd-mm-yyyy
sau này khi query có thể dễ dàng tách string ra rồi so sánh ì xèo ...là được .
Em mà bik cái vụ "so sánh ì xèo" của bác thì em đã làm rồi
kylobytes viết 11:47 ngày 10/10/2018
Xem ví dụ rồi tự giải quyết:
PHP Code:
<?php
    $today 
date("d/m/Y"); //ra định dạng dd/mm/yyyy 
    
echo $today;
    
$day substr($today,0,2);//lấy 2 ký tự đầu từ vị trí 0
    
$day = (int)$day;//sợ nó là kiểu chuỗi, cho về int cho chắc
    
if ($day>&& $day<10){
        echo 
"Mày nằm từ 0 - 10";
    }
    else if(
$day>10 && $day<20){
        echo 
"Mày nằm từ 10 - 20.";
    }
    else {
        echo 
"Mày lớn hơn 20 rồi.";
    }
?>
Gắng đọc sẽ hiểu dùng hàm gì. Rất nhiều hàm trong PHP_Manual
BossFTP viết 11:41 ngày 10/10/2018
Nếu bác muốn rút từ csdl MySQL ra các ngày từ ... đến ...
=> ngaynhan kieu varchar, format YYYYmmdd
Khi insert
PHP Code:
$today date("Ymd");
mysql_query("INSERT INTO khachhang VALUES(...., '$today');"); 
Khi nào cần rút ra các record có ngày nhận vd từ 10/09/2008 đến 1/2/2009
PHP Code:
SELECT FROM khachhang WHERE ngaynhan>=20080910 AND ngaynhan<=20090201 
huongsisi viết 11:39 ngày 10/10/2018
Các bác ko hiểu ý em rồi . Em để type của field Ngaynhan là char để nhập kiểu ngày theo định dạng dd-mm-yy ( quen thế rồi ).
Bây giờ em muốn thống kê từ ngày 16-3-2009 đến ngày 20-3-2009 . ( cái này là do ng dùng nhập vào ngày muốn xem thống kê, tất cả đều là kiểu char )
ngoc_viet08 viết 11:36 ngày 10/10/2018
:| tách char ra rồi so sánh là xong mà .
tách char bằng câu lệnh sub_str thì phải . quên rồi
harzix viết 11:37 ngày 10/10/2018
Dữ liệu thời gian tốt nhất nên dùng định dạng số nguyên cho nhanh (kể cả hiệu suất):

- PHP: "mktime" để chuyển sang dạng số, hàm "date" chuyển từ số sang định dạng thường (vd: 20-3-2009)

- MySQL: tương ứng trên MySQL UNIX_TIMESTAMP/FROM_UNIXTIME
Bài liên quan
0