【问题标题】:Trying to query data based on range of date but for only one time point尝试根据日期范围查询数据,但仅查询一个时间点
【发布时间】:2019-06-04 15:26:36
【问题描述】:

我正在尝试通过 SQuirreL 查询 MSSQL 数据库,如果我只希望所有数据都通过一系列时间戳,它就可以工作。但是,我想查询一系列日期,但只查询一个时间点。我已经成功地在 postgresql 中执行了这种类型的查询,但是我对 MSSQL sql 查询不太熟悉。

SELECT * FROM table WHERE timestamp >='06/04/19 00:00:00' AND 
(TimeValue(timestamp) BETWEEN '23:40:00' AND '23:55:00');

如果我只选择一个日期或时间戳范围,我可以使用这行代码来工作,但是一旦我添加了时间值,即使我知道它在那里,我也不会得到匹配的数据。 我确信我只是没有正确使用语法,或者对于 MSSQL,有不同的方法可以做到这一点。谢谢。

【问题讨论】:

  • 在代码中查询后添加一行Debug.Print SQLstring。并按CTRL + G。现在,当您运行代码时,您将看到 VBA 正在构建的查询,您可以复制粘贴并在 SQL 中检查它。

标签: sql sql-server squirrel-sql


【解决方案1】:

当您没有收到数据时,您生成了什么查询?我假设您在“和/或”上犯了一个错误。您正在查找的查询可能如下所示:

`WHERE (TIME(timestamp) BETWEEN {t ‘12:00:00’} AND {‘t 14:00:00’}) AND ((DATE(timestamp) BETWEEN var1 AND var2) AND (DATE(timestamp) BETWEEN var1 AND var2))`

【讨论】:

  • 所以我尝试了这个,但在 SQuirreL 中出现错误:错误:'TimeValue' 不是可识别的内置函数名称。 SQLState:S00010 错误代码:195
  • @GregoryBoyle 不知道“TimeValue()”应该做什么。你试过“TIME()”吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多