【问题标题】:How to get rows in a table that start from a specific date and time in SQL?如何在 SQL 中获取从特定日期和时间开始的表中的行?
【发布时间】:2022-01-17 23:28:06
【问题描述】:

在我的一个 SQL Server 表中,我有以下几行:

Date Time
2021-10-01 10:00:00.0000000
2021-10-01 11:00:00.0000000
2021-10-01 12:00:00.0000000
2021-10-02 10:00:00.0000000
2021-10-02 11:00:00.0000000
2021-10-02 12:00:00.0000000
2021-10-03 10:00:00.0000000
2021-10-03 11:00:00.0000000
2021-10-03 12:00:00.0000000

我想获取从特定 Date 开始的行,然后从特定 Time 开始。例如,通过2021-10-0212:00:00.0000000,我想得到最后四行,因为2021-10-02 被认为是“开始日期”,然后12:00:00.0000000 被认为是“开始时间”。不幸的是,我不太擅长 SQL。我想嵌套查询应该是要走的路。

【问题讨论】:

  • 请编辑您的问题并添加您的查询,以证明您自己解决此问题的最佳尝试,然后解释该查询如何没有给您预期的结果

标签: sql sql-server nested-queries sqldatetime


【解决方案1】:

您需要对此有点“两管齐下”。您需要检查日期是否在2021-10-0212:00:00.0000000 或之后,或者2021-10-03 或之后:

SELECT {YourColumns}
FROM dbo.YourTable
WHERE (YourDate = '20210102' AND YourTime >= '12:00:00')
   OR YourDate >= '20210103';

【讨论】:

  • 只需使用大于,这样您就可以将同一个参数比较两次。
猜你喜欢
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 2020-07-20
  • 1970-01-01
相关资源
最近更新 更多