我以这种格式(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之前从数据库获取数据吗?
答案 0 :(得分:6)
您需要将其括在引号中:
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
。
答案 1 :(得分:2)
尝试这样做
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")
答案 2 :(得分:1)
您已使用以下语法在两个日期之间获取数据
“2011/02/25”与“2011/02/27”之间的日期
使用上述时间的日期时间..它将起作用....(时间戳)
或使用如下,
SELECT id FROM Parts WHERE (Time < EndTime) AND (Time > BeginTime) ORDER BY Time;