获取在特定时间之间存储的数据

问题描述:

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

+1

什么列的类型是什么呢? – zerkms

+0

是时间varchar? – 2012-12-17 12:54:29

+0

类型:时间 默认:00: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,MMSSHHMMSS

+0

+1嗨,伟大的人。它的工作酷!谢谢你的回复。 –

+0

一旦我获取记录是否有任何其他方法来验证PHP中的这些日期?我有一个想法,在上午9点之前着色数据以便参考。 –

+0

@Vignesh Gopalakrishnan:只要它是一个格式为'HH:MM:SS'的字符串,你可以直接比较'if($ time zerkms

你必须使用以下语法两个日期之间获取数据,

'2011/02/25' 和 '2011/02/27'

使用之间的日期日期时间为上述的..它会工作....(时间戳)

或者使用如下,

SELECT id FROM Parts WHERE (Time < EndTime) AND (Time > BeginTime) ORDER BY Time; 
+0

我在询问有关时间的数据。没有约会。谢谢你的回复 –

+0

看看我编辑的代码.... –

+0

Thankyou Vinoth Babu! –

尝试做到这一点

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") 
+0

看到我的编辑,如果它不解决你的第一个查询 –

+0

time_in BETWEEN '09:20:59'和'09:00:00' 这是行不通的。 –

+1

看我第二次更新的答案,希望它可以帮助你 –