【发布时间】:2011-07-19 08:52:28
【问题描述】:
如何使用 SQL DATEADD() 函数查找该工作日的记录?例如:
SELECT * FROM records r
WHERE r.creationTime <= GETDATE()
AND r.creationTime >= DATEADD(dd, -1 * hoursFromStartOfThisDay, GETDATE())
“hoursFromStartOfThisDay”正是它所说的。
注意:我说的是工作日,所以从周一到周五上午 9 点到下午 5 点,如果这很重要的话。
谢谢各位!
编辑:我也希望在一周/一个月的开始时应用解决方案,也可能是小时。
编辑:因此,如果一条记录是在 18/07/2011 08:55:00 创建的,而另一条记录是在 18/07/2011 09:05:00 创建的,我希望第二条记录被查询拾取并且不是第一个。但是,如果当前的 GETDATE() 是 18/07/2011 09:15:00,那么它会变得很棘手。
添加AND r.creationTime >= '9am'怎么样?
【问题讨论】:
-
“hoursFromStartOfThisDay”是什么意思? 这个名字对我们没有用处。时间的数据类型? “时间”?由于不清楚,请提供示例数据
-
您是否试图找到一个计算来给出“今天上午 9 点”?您想如何对待以下时间? 23:59, 00:00, 00:01, 08:59, 17:01?
-
-1 您的问题更新使这比以前更加模糊
-
creationTime > GETDATE()真的可以在您的架构中使用吗? -
gbn 还算不错,但 sll 明白了,所以不可能那么模糊。
标签: sql sql-server sql-server-2005 dateadd getdate