获取当前时间落在范围内的记录

时间:2013-07-03 03:16:22

标签: sql database

这是一个面试问题: 给定一个数据库(mysql或等价物),每个记录包含列'开始时间'和'结束时间' 我被要求获取当前系统时间在开始和结束时间之间的记录。但是开始和结束时间是时间戳(YYYY-MM-DD HH:MM:SS)。所以我只应该寻找时间部分(HH:MM:SS)落在范围内的那些(显然同一个日期永远不会重复:))。

3 个答案:

答案 0 :(得分:0)

喜欢这个吗?

SELECT *
FROM table
WHERE CURRENT_TIMESTAMP BETWEEN start_time and end_time

答案 1 :(得分:0)

此问题依赖于高度数据库引擎。几乎每个数据库都有自己的功能。在面试问题中说mysql or equivalent与询问你是否知道那些特定的mysql函数是一样的......顺便说一下,主要数据库最不类似于标准实际定义的函数,部分原因在于mysql使用unix时间的历史。 MySQL就像数据库的VB6一样,这个问题强烈地表明访问者要么自己不知道这一点,要么厌倦了采访那些不知道它的开发人员。

完整的标准sql参考需要付费才能下载,但我确实在这里找到了sql-92标准日期和时间数据类型和操作的参考:

  

http://www.ibphoenix.com/resources/documents/design/doc_169

答案 2 :(得分:0)

SELECT *
  FROM MyTable T
 WHERE TIME_TO_SEC(CURRENT_TIMESTAMP) BETWEEN TIME_TO_SEC(T.start_time)
       AND TIME_TO_SEC(T.end_time)