首页 > 解决方案 > 如何查询日期范围之间的日期时间字段,以及 SQL 中时间之间的日期时间字段

问题描述

我需要使用具有名为“CreatedDate”的字段的数据生成报告。该字段是日期和时间戳。我需要创建一个查询,例如选择 CreatedDate 从 '01/01/2018' 到 '06/02/2018' 的所有行,并且仅在时间介于 '13:30:00' 到'18:00:00'。我在尝试完成此操作时遇到问题。

下面是我尝试过的一个例子:

SELECT 
    *
FROM [tablename]
WHERE [CreatedBy] = '792'
      AND ([CreatedDate] >= '2018-01-01'
           OR [CreatedDate] <= CAST(GETDATE() AS DATE))
      AND ([CreatedDate] BETWEEN '13:30:00' AND '16:00:00')
ORDER BY 
    [ID] DESC;

现在这不起作用,但不知道如何实现这一点。任何帮助将不胜感激。-谢谢-

标签: sqlsql-serverdatetime

解决方案


尝试使用TIME功能。

select * from [tablename] 
where CreatedBy = '792' 
and (CreatedDate >= '2018-01-01' or CreatedDate <= CAST(GETDATE() as DATE)) AND 
(TIME(CreatedDate) BETWEEN TIME('13:30:00') AND TIME('16:00:00')) ORDER BY ID desc

推荐阅读