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
您的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