我正在尝试在特定时间范围内查询订单。我知道你如何在某个日期做到这一点,但我想从下午3:00到晚上7点,或者上午12点到晚上10点半选择所有订单,依此类推。这可能吗?另外,如果你不介意,我想要一些解释,因为我是SQL的新手。 谢谢!
答案 0 :(得分:0)
您可以在where子句中指定所需内容,如下例所示:
Where OrderFrom between '3:00PM' and '7:00PM'
或者你可以这样做:
Where OrderFrom >= '3:00PM' and OrderFrom <= '7:00PM'
答案 1 :(得分:0)
是的,这是可能的。
select * from date_table where date ='date1' and time between 'time1' and 'time2'
给出date1,time1和time2的值
您可以使用以上查询来获取特定时间之间任何一天的输出。
答案 2 :(得分:0)
假设您有一个DATETIME
类型的OrderDate列,您可以使用:
SELECT *
FROM <YourTableName>
WHERE CAST(OrderDate AS DATE) = <YourDateValue>
AND (
CAST(OrderDate AS TIME) BETWEEN '3:00PM' AND '7:00PM'
OR CAST(OrderDate AS TIME) BETWEEN '12:00AM' AND '10:00AM'
)
如果您省略DATE
比较,则无论日期如何,都会返回在您的小时之间具有DATETIME
分量的所有TIME
值。
看一下这个例子:
CREATE TABLE #test (val DATETIME)
INSERT INTO #test (val)
VALUES ('2018-01-04 09:00:00.000')
,('2018-01-04 10:00:00.000')
,('2018-01-04 11:00:00.000')
,('2018-01-04 12:00:00.000')
,('2018-01-05 09:00:00.000')
,('2018-01-05 10:00:00.000')
,('2018-01-05 11:00:00.000')
,('2018-01-05 12:00:00.000')
SELECT * FROM #test
WHERE CAST(val AS TIME) BETWEEN '9:00AM' AND '11:00AM'
此查询的结果是:
val
2018-01-04 09:00:00.000
2018-01-04 10:00:00.000
2018-01-04 11:00:00.000
2018-01-05 09:00:00.000
2018-01-05 10:00:00.000
2018-01-05 11:00:00.000