【问题标题】:Getting data stored between particular time获取特定时间之间存储的数据
【发布时间】:2012-12-04 13:44:34
【问题描述】:

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

【问题讨论】:

  • 类型:时间默认:00:00:00

标签: php html mysql database oracle


【解决方案1】:

试试这个

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

【讨论】:

  • time_in BETWEEN '09:20:59' AND '09:00:00' 这不起作用。
【解决方案2】:

你需要用引号括起来:

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 嘿,伟人。它的工作很酷!感谢您的友好回复。
  • 一旦我获取记录是否有任何其他方法可以在 PHP 中验证这些日期?我想在上午 9 点之前为数据着色以便于参考。
  • @Vignesh Gopalakrishnan:只要它是格式为'HH:MM:SS' 的字符串,您就可以像if ($time &lt; '09:00:00') { ... } 那样执行直接比较
  • @zerkms:谢谢先生。让我试试看!!
【解决方案3】:

您已经使用以下语法来获取两个日期之间的数据,

“2011/02/25”和“2011/02/27”之间的日期

对上述使用日期时间..它会起作用....(时间戳)

或者像下面这样使用,

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

【讨论】:

  • 我在询问关于时间的数据。不是日期。谢谢您的回复
猜你喜欢
  • 1970-01-01
  • 2018-02-02
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 2013-09-16
  • 2018-08-01
  • 1970-01-01
相关资源
最近更新 更多