【问题标题】:sql - trying to select a column with datetime with a condition of date only [closed]sql - 尝试选择具有日期时间且仅日期条件的列[关闭]
【发布时间】:2018-03-19 07:33:11
【问题描述】:

所以我有这张桌子:http://prntscr.com/it53pm(在这个链接中)。

我想要做的是选择时间表,其中时间表日期 = 当前日期。

【问题讨论】:

  • 欢迎来到 StackOverflow。请添加您尝试过的 SQL 查询,以便人们可以帮助您进一步进步。如果问题看起来他们没有研究工作,用户通常会被否决。谢谢!
  • 请标记您正在使用的特定 RDBMS(数据库类型),并将表格添加到问题本身,包括表格中列的类型,并向我们展示您尝试过的内容远。

标签: php sql


【解决方案1】:

标准 SQL:

select * from tab
where cast(schedule as date) = current_date

更长的语法,但允许索引访问:

select * from tab
where schedule >= cast(current_date as timestamp)
  and schedule <  cast(current_date + interval '1' day as timestamp)

【讨论】:

    【解决方案2】:

    选择援助,计划 从你的桌子 WHERE TRUNC(schedule)=TRUNC(SYSDATE)

    这适用于 Oracle SQL

    【讨论】:

      【解决方案3】:

      试试这个

      SELECT aid FROM table WHERE schedule >= TIMESTAMP(CURDATE())
      

      【讨论】:

      • 明天安排的任务呢?
      • aa60466 只请求当前日期,所以我认为最后的数据只有今天
      • 是的,但是您的 WHERE 当前也包括今天 之后 的计划任务。
      【解决方案4】:

      您可以在 where 子句中使用 NOW()

      for example
      SELECT *
      WHERE schedule like NOW()
      
      • NOW() 在当前日期和时间将是“YYYY-MM-DD HH-MM-SS”

      【讨论】:

      • curdate() 为您提供当前日期,如果您查看屏幕截图,您可以看到,他在列中也有时间
      • 好吧,我会编辑我的答案
      • 这行不通。
      • 这会起作用,但永远不会得到结果,不是吗?我认为你的答案是正确的@dnoeth
      • 您必须在非常精确的毫秒内执行此查询才能使其工作,因为 NOW() 也为您提供毫秒数
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      相关资源
      最近更新 更多