【问题标题】:How I do select those entries in SQL which are greater than a certain time using datetime?如何使用日期时间选择 SQL 中大于某个时间的条目?
【发布时间】:2014-08-16 15:19:59
【问题描述】:

我有一个 MySQL 数据库,第一列为索引(自动递增),第二列为日期时间。我想选择所有大于某个日期和时间的条目并显示它们。

要查看大于选择值的日期和时间,这可行-

SELECT * FROM FULL_WATSON_V2 WHERE (datetime > '2014-06-25 17:22:00');

但是用户将只输入从现在开始需要多长时间的数据,并且使用这种形式很麻烦。例如,用户将指定它想要从 2 小时 40 分钟前开始的数据。

为此编写 SQL 查询的最佳方法是什么?

PS - 我相信 datepart() 可以以某种方式使用,但我无法让它工作。

【问题讨论】:

  • WHERE datetime > NOW() - 间隔 40 分钟?
  • 决定用户输入应该是什么样子。然后删除这个问题,再问一个问题。

标签: mysql sql datetime


【解决方案1】:

我建议您坚持使用查询,因为这是查找记录的上下文不可知版本。 UI 将时间指定为与当前时间的偏移量这一事实是业务逻辑决策,不应过滤到您的 SQL 中。

即捕获偏移量的 UI 应确定当前时间的小于日期并将其用作查询的输入,而不是使用依赖于计算该偏移量的 SQL 查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多