2012-01-05 44 views
0

我面对的一个并发症少,在这样的逻辑,请帮我....查找最近的时间给定数组时

这样的事情是:

我有次在一个列表类似

上午9点,上午9点30分,上午10点,上午10点30分,上午11点,上午11点30分,下午12点,下午12点30分,下午1点,1:30 pm ...........

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

请帮我出这个逻辑........

它帮助很多,如果它是SQL语句...

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

谢谢

+1

JavaScript和SQL的标签? Err – fge 2012-01-05 09:38:02

+0

@fge它可以帮助我两种方式,我可以使用javascript代码和sql语句.... – 2012-01-05 09:39:47

回答

3

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

如果你这样做,你就可以只使用:

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

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

0

SQL很可能是首选:

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

这会找到下一次_on或before_请求的时间,不一定是最近的,这可能是之后。 – Alnitak 2012-01-05 10:34:44

+0

是的,但目前还不清楚这是否是我需要的东西...... – fge 2012-01-05 11:09:50

相关问题