在特定时间之间存储数据

时间:2012-12-17 12:53:05

标签: php html mysql database oracle

我以这种格式(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之前从数据库获取数据吗?

3 个答案:

答案 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'。还可以理解以下替代格式:SSMMSSHHMMSS

  •   

答案 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;