选择过去24小时到今天早晨某个小时的行

时间:2019-10-02 13:59:24

标签: sql-server tsql datetime

我想选择过去24小时内数据库中的所有行,而不是每次都选择直到当前时间,而是直到今天的某个小时。我应该添加以下语句吗?

到目前为止,每当用户使用以下语句访问网页时,我都会获得最近24小时的结果:

tad510.t_edte >= DATEADD(day,-1,GETDATE()) -- t_edte is a datetime

但是问题是我想显示过去24小时的结果,直到从视图的控制器中调用该函数的当天的凌晨5点。

我当时想做些类似的事情:

tad510.t_edte > DATEADD(day,-1,GETDATE())+'05:00:00'

但是我不确定它是否正确

如果你们能告诉我我该怎么做,这样我才能取得预期的结果,那将真的很有帮助。 提前非常感谢您!

2 个答案:

答案 0 :(得分:1)

您可以使用以下WHERE子句:

WHERE t_edte >= DATEADD(HOUR, -19, CAST(CAST(CURRENT_TIMESTAMP AS DATE) AS DATETIME))
  AND t_edte <  DATEADD(HOUR,   5, CAST(CAST(CURRENT_TIMESTAMP AS DATE) AS DATETIME))

2019-10-02 07:16:54.453上,它将在2019-10-01 05:002019-10-02 05:00之间获取数据。 Demo on db<>fiddle

答案 1 :(得分:0)

一种方法,将import styles from './MyComponent.module.css' import { cssExports } from './MyComponent.module.css.d' const myFunc = (style: cssExports): string => {...} 强制转换为GETDATE()(然后转换回date)并添加5个小时。

datetime