我以这种格式(00:00:00)将时间存储在考勤表中。现在我需要找到存储在 09:00:00 之前的登录数据。
我正在使用此查询来查找数据。
SELECT user_name,
time_in
FROM attendance
WHERE user_name='Vignesh'
AND time_in < 09:20:59
这件事对我不起作用。有没有其他方法可以从数据库中获取 09:00:00 之前的数据?
您需要将其括在引号中:
AND time_in < '09:20:59'
^--------^--- single quote char
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
MySQL 可以识别以下格式的TIME值:
作为
'D HH:MM:SS'
格式的字符串。您还可以使用以下“宽松”语法之一:'HH:MM:SS'
,'HH:MM'
,'D HH:MM'
,'D HH'
, 或'SS'
. 这里D
代表天,可以有一个从 0 到 34 的值。作为
'HHMMSS'
格式中没有分隔符的字符串,前提是它作为时间有意义。例如,'101112'
被理解为'10:11:12'
,但是'109712'
是非法的(它有一个无意义的微小部分)并且变成'00:00:00'
。作为
HHMMSS
格式中的数字,前提是它作为时间有意义。例如,101112
被理解为'10:11:12'
。还可以理解以下替代格式:SS
、MMSS
或HHMMSS
。
尝试这样做
SELECT user_name,
time_in
FROM attendance
WHERE user_name='Vignesh'
AND time_in < '09:20:59'
编辑 :
或者你也可以使用这个
SELECT user_name,time_in
FROM attendance
WHERE user_name='Vignesh'
AND startTime < TIME_FORMAT("00:00:00","%H:%i:%s")
AND endTime > TIME_FORMAT("05:00:00","%H:%i:%s")
您可以使用以下语法获取两个日期之间的数据,
“2011/02/25”和“2011/02/27”之间的日期
对上述使用日期时间..它会工作....(时间戳)
或者像下面这样使用,
SELECT id FROM Parts WHERE (Time < EndTime) AND (Time > BeginTime) ORDER BY Time;