【问题标题】:SQL query by getting current time通过获取当前时间进行 SQL 查询
【发布时间】:2018-03-25 00:46:30
【问题描述】:

我的项目即将获取一所学校的当前课程,我使用表 CLASSES 创建了数据库,其中包含 START_TIME(例如:16:00)和 END_TIME(例如:18:00)列。我有变量“小时”,它将从系统中获取当前时间。

我的问题是:查询数据库以获取当前类的最佳方法是什么,例如(SELECT * FROM CLASSES WHERE START_TIME='hour');

如果当前时间与开始时间相同,这对我有用,但如果当前时间在 START_TIME 和 END_TIME 之间怎么办?例如上课是从(16:00到19:00),当前时间是15:00?怎么解决?

【问题讨论】:

    标签: java mysql sql time


    【解决方案1】:

    这完全解决了我的问题,只显示我想要的结果(而不是在 BETWEEN 运算符所做的结果之前或之后):

    SELECT * FROM CLASSES WHERE 'currentTime' >= START_TIME AND 'currentTime' < END_TIME
    

    【讨论】:

      【解决方案2】:

      您可以像这样使用between

      SELECT * 
      FROM CLASSES 
      WHERE currentTime BETWEEN START_TIME AND END_TIME;
      

      另一种选择是使用&gt;=&lt;= 运算符。

      【讨论】:

      • 第二个选项正是我需要的,它只显示我想要的(当前课程):SELECT * FROM CLASSES WHERE 'currentTime' >= START_TIME AND 'currentTime'
      【解决方案3】:

      这个呢?

      SELECT * FROM CLASSES WHERE 'hour' BETWEEN START_TIME AND END_TIME
      

      但这取决于开始和结束时间在数据库中的存储方式。作为数值(例如 16、18)?那么小时价值呢?它也是数值吗? 在所有 3 个值都是数字的情况下,上面的查询将起作用。 如果它们以某种不同的格式存储,则应调整答案。

      【讨论】:

      • BETWEEN 运算符有效,但它有时会给我当前类之后或之前的类,因为 BETWEEN 包括 START_TIME 和 END_TIME,>= 和
      猜你喜欢
      • 1970-01-01
      • 2011-03-03
      • 2014-05-12
      • 2021-03-17
      • 2016-02-11
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      相关资源
      最近更新 更多