查询 SQL 服务器从上一日期的特定时间到当前日期的特定时间
Query SQL Server From Specific Time On Previous Date To Specific Time On Current Date
抱歉这个菜鸟 SQL 问题。我在 SQL 中有一个带有 DateTime 列的 table。我每天需要 运行 一个脚本来显示从昨天早上 8 点到今天早上 8 点的所有台词。例如,今天我会 运行:
select *
from Table
Where DateTime > '2020-12-30 08:00:00.000' and DateTime < '2020-12-31 08:00:00.000'
我也知道我可以 运行 这个,但这只会给我前一天到当前时间:
select *
from Table
Where DateTime >= DATEADD(day,-1, GETDATE()) and DateTime < GETDATE())
但是否有创建脚本的技巧,这样我就可以从昨天早上 8 点到今天早上 8 点,而无需每天手动编辑脚本?
我会推荐:
select *
from mytable
where
datetime >= dateadd(hour, 8, dateadd(day, -1, convert(datetime, convert(date, getdate()))))
and datetime < dateadd(hour, 8, convert(datetime, convert(date, getdate()))))
您可以将 getdate()
转换为 date
并返回 datetime
以将其截断为今天 00:00:00。然后使用 dateadd()
但有几个小时。 -16 表示昨天 08:00:00,+8 表示今天 08:00。
SELECT *
FROM elbat
WHERE nmuloc >= dateadd(hour, -16, convert(datetime, convert(date, getdate())))
AND nmuloc < dateadd(hour, 8, convert(datetime, convert(date, getdate())));
抱歉这个菜鸟 SQL 问题。我在 SQL 中有一个带有 DateTime 列的 table。我每天需要 运行 一个脚本来显示从昨天早上 8 点到今天早上 8 点的所有台词。例如,今天我会 运行:
select *
from Table
Where DateTime > '2020-12-30 08:00:00.000' and DateTime < '2020-12-31 08:00:00.000'
我也知道我可以 运行 这个,但这只会给我前一天到当前时间:
select *
from Table
Where DateTime >= DATEADD(day,-1, GETDATE()) and DateTime < GETDATE())
但是否有创建脚本的技巧,这样我就可以从昨天早上 8 点到今天早上 8 点,而无需每天手动编辑脚本?
我会推荐:
select *
from mytable
where
datetime >= dateadd(hour, 8, dateadd(day, -1, convert(datetime, convert(date, getdate()))))
and datetime < dateadd(hour, 8, convert(datetime, convert(date, getdate()))))
您可以将 getdate()
转换为 date
并返回 datetime
以将其截断为今天 00:00:00。然后使用 dateadd()
但有几个小时。 -16 表示昨天 08:00:00,+8 表示今天 08:00。
SELECT *
FROM elbat
WHERE nmuloc >= dateadd(hour, -16, convert(datetime, convert(date, getdate())))
AND nmuloc < dateadd(hour, 8, convert(datetime, convert(date, getdate())));