为什么我得到这个结果?

Sin*_*ino 1 php mysql database

SELECT * 
FROM afspraken
WHERE user_id =  '2'
AND datum >  '2012-06-05'
OR (
user_id =  '2'
AND datum =  '2012-06-05'
AND begintijd >=  '22:47'
)
ORDER BY datum DESC , begintijd ASC 
Run Code Online (Sandbox Code Playgroud)

以上是我的查询..虽然我应该得到零结果我仍然得到一个是:

id  user_id     datum      begintijd    opmerking
114 2         2012-06-05    9:30        Deze afspraak is online gemaakt.
Run Code Online (Sandbox Code Playgroud)

现在,如果我有正确的,这个查询有2个选项给出结果..这是:user_id必须相同,日期必须高于2012-06-05 ..由于它的相同日期,这将不会给出结果..

现在是第二个选项,当user_id相同时,日期是相同的,当开始时间相同或更高时.现在显示的查询中的时间是22:47 ..数据库中的时间是9: 30早上.. 9:30早上如何高于或等于22:47?

    id  int(10)                             
    user_id int(10) 
    datum   date    
    begintijd   varchar(5)
    opmerking   varchar(8000)
    reminder    int(10)
Run Code Online (Sandbox Code Playgroud)

Wal*_*oss 8

看起来您的begintijd列是一varchar列.

所以,作为字符串,'22:47' < '9:30'.

解决方案是将begintijd列转换为time数据类型.