找到最接近给定时间阵列的时间

时间:2012-01-05 09:36:35

标签: javascript sql sqlite time logic

我在这个逻辑上面临一点点复杂,请帮助我......

所以问题是:

我有一个像

这样的表中的时间列表

上午9:00,上午9:30,上午10:00,上午10:30,上午11:00,上午11:30,中午12:00,下午12:30,下午1:00,下午1:30 PM ...........

所以现在如果我给了一个像 10:42 am 这样的随机时间,逻辑应该是这样的,它应该返回 10:30 am

请帮我解决这个逻辑........

如果它是sql-statement ...

,它会有很多帮助

非常感谢任何帮助。 。 。 。

谢谢

2 个答案:

答案 0 :(得分:3)

首先,摆脱你的am / pm限定符 - 使用24小时制。更好的是,从午夜开始使用秒或分钟。

如果你已经这样做了,那么你可以使用:

SELECT   time, ABS(time - usertime) AS diff
FROM     mytable
ORDER BY diff
LIMIT    1

这实际上是MySQL语法,但是应该很容易移植到SQLite。

答案 1 :(得分:0)

SQL可能更受欢迎:

select max(datecol) from thetimetable where datecol <= thewantedtime