SQL Server根据用户输入的指定时间范围选择带有时间的行

本文关键字:选择 范围 时间 定时间 Server 用户 输入 SQL | 更新日期: 2023-09-27 17:50:20

是否有一种方法可以查询数据库以返回包含time数据类型的数据的行,该数据类型依赖于用户提供的时间跨度(例如,在5:00到11:00之间查询将返回包含从5:00一直到11:00的时间的所有行,而不仅仅是恰好包含5:00和11:00)?

上述问题可能存在吗?或者我应该只依赖程序性地设置程序中的参数?

我知道这条绝对不能满足我想要知道的。

SELECT *   
FROM Consultation
WHERE (Consultation_Day = 'Monday') AND (Time_From = '5:00') OR (Time_From = '11:00')
ORDER BY Last_Name

SQL Server根据用户输入的指定时间范围选择带有时间的行

您的Time条件检查的是5:00或11:00的精确时间,您可以这样做:

(Time_From >= '5:00') AND (Time_From <= '11:00')

所以你的查询应该是:

SELECT *   
FROM Consultation
WHERE (Consultation_Day = 'Monday') AND ((Time_From >= '5:00') AND (Time_From <= '11:00'))
ORDER BY Last_Name

或者因为你使用的是MS SQL Server,你可以使用between

where Time_From BETWEEN '5:00' and '11:00'

所以你的查询应该是

SELECT *   
FROM Consultation
WHERE Consultation_Day = 'Monday' AND Time_From BETWEEN '5:00' AND '11:00'
ORDER BY Last_Name