【问题标题】:find time nearest to the given array of times找到最接近给定时间数组的时间
【发布时间】:2012-02-03 03:28:54
【问题描述】:

我在这个逻辑上遇到了一点复杂,请帮帮我....

事情是这样的:

我在表格中有一个时间列表,例如

上午 9:00、上午 9:30、上午 10:00、上午 10:30、上午 11:00、上午 11:30、下午 12:00、下午 12:30、下午 1:00、下午 1:30下午…………

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

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

如果是 sql-statement 会很有帮助...

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

谢谢

【问题讨论】:

  • 标签中有javascript和sql吗?错误
  • @fge 它可以帮助我同时使用 javascript 代码和 sql-statement....

标签: javascript sql sqlite time logic


【解决方案1】:

首先,去掉 am / pm 限定符 - 使用 24 小时制。更好的是,只需使用自午夜以来的秒数或分钟数。

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

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

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

【讨论】:

    【解决方案2】:

    SQL 很可能是首选:

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

    【讨论】:

    • 这将找到下一次在或之前请求的时间,不一定是最近的,可能在之后。
    猜你喜欢
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多