10/10/2018, 10:35

Mysql + PHP : tìm kiếm dữ liệu trong khoảng thời gian

Table có 2 trường start và end đều là datetime
Code:
SELECT e.* FROM jos_events e 
WHERE 1=1 
AND e.start >= 2006-07-10 
AND e.end <= 2015-10-21 
ORDER BY e.id DESC
muốn tìm kiếm event trog khoảng thời gian được nhập vào
làm sao để tìm kiếm được ? phải conver lại thời gian thế nào các bác
help
cayriver viết 12:51 ngày 10/10/2018
Bạn xem qua danh sách này:http://dev.mysql.com/doc/refman/5.1/...functions.html
Và sử dụng
SELECT e.* FROM jos_events e
WHERE 1=1
AND DATEDIFF(e.start,'2006-07-10')>0
AND DATEDIFF(e.end,'2015-10-21')<0
ORDER BY e.id DESC
chameron viết 12:46 ngày 10/10/2018
thank bạn nhiều bla bla bla
thuyduongcd viết 12:41 ngày 10/10/2018
Hai câu query đó có gì khác nhau đâu.
Huống chi, ở đây phải dùng TIMEDIFF() mới hợp lý
cayriver viết 12:43 ngày 10/10/2018
Ko khác nhau sao cái chạy được cái không? mà sao lại phải dùng TIMEDIFF mà không được dùng DATEDIFF? Chỉ tính chính xác đến ngày thì dùng DATEDIFF đúng quá rồi còn gì?
thuyduongcd viết 12:47 ngày 10/10/2018
Về cơ bản thì nó như nhau, chỉ là do câu trên viết sai nên nó không chạy thôi.
Còn cái yêu cầu là tìm kiếm event trog khoảng thời gian được nhập vào. Giả sử bạn muốn tìm sự kiện diễn ra từ ngày 10/07/2006. Nếu dùng DATEDIFF(e.start,'2006-07-10'), nếu start="2006-07-10" kết quả sẽ = 0, điều kiện truy vấn sai thì sẽ không cho kết quả. Như vậy, tất cả những sự kiện diễn ra trong ngày đó sẽ bị bỏ qua.
chameron viết 12:39 ngày 10/10/2018
thank các bác rất nhiều
câu query của em sai ở chỗ này hả 'string'
Bài liên quan
0