【发布时间】:2020-10-23 01:09:45
【问题描述】:
例如,我想在前天晚上 10 点到昨天晚上 10 点之间检索数据库中的所有内容。截至目前(2020 年 7 月 2 日下午 2:00:00),我拥有这种格式。
【问题讨论】:
-
你的答案很不清楚。确切的时间段是多少?
标签: sql date ms-access time filter
例如,我想在前天晚上 10 点到昨天晚上 10 点之间检索数据库中的所有内容。截至目前(2020 年 7 月 2 日下午 2:00:00),我拥有这种格式。
【问题讨论】:
标签: sql date ms-access time filter
Assuming table1 as table and col1 as column
declare @yesterday datetime
SELECT @yesterday=DATEADD(millisecond,DATEDIFF(millisecond, 0, (SELECT
CONVERT(TIME,'22:00:00.000')) ),CAST( (convert(date,
dateadd(day,datediff(day,1, GETDATE()),0))) AS DATETIME));
declare @daybeforeyesterday datetime
SELECT @daybeforeyesterday=DATEADD(millisecond
,DATEDIFF(millisecond, 0, (SELECT CONVERT(TIME,'22:00:00.000'))
),CAST( (convert(date, dateadd(day,datediff(day,2,
GETDATE()),0))) AS DATETIME));
select * from table1 where col1 between @yesterday and @daybeforeyesterday
【讨论】:
使用Date()(从午夜开始时间,'00:00:00')和CDate(注意时间格式对于相同的值可能不同,例如10 PM vs @987654324)简单地添加日期和时间元素@)。
SELECT ...
FROM myTable
WHERE myDate BETWEEN (Date() - 2) + CDate('10 PM')
AND (Date() - 1) + CDate('22:00')
【讨论】:
计算小时差异并使用DateAdd:
Select *
From YourTable
Where YourDateField Between
DateAdd("h", -26, Date()) And DateAdd("h", -2, Date())
【讨论】: