Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 函数以查找此工作日中的值_Sql_Sql Server_Sql Server 2005_Dateadd_Getdate - Fatal编程技术网

Sql 函数以查找此工作日中的值

Sql 函数以查找此工作日中的值,sql,sql-server,sql-server-2005,dateadd,getdate,Sql,Sql Server,Sql Server 2005,Dateadd,Getdate,如何使用SQL DATEADD函数查找此工作日的记录?例如: SELECT * FROM records r WHERE r.creationTime <= GETDATE() AND r.creationTime >= DATEADD(dd, -1 * hoursFromStartOfThisDay, GETDATE()) “HoursFromStartofThis Day”正是它所说的 注:我指的是工作日,所以从上午9点到下午5点,周一到周五,如果有必要的话 谢谢,伙计们

如何使用SQL DATEADD函数查找此工作日的记录?例如:

SELECT * FROM records r
WHERE r.creationTime <= GETDATE()
  AND r.creationTime >= DATEADD(dd, -1 * hoursFromStartOfThisDay, GETDATE())
“HoursFromStartofThis Day”正是它所说的

注:我指的是工作日,所以从上午9点到下午5点,周一到周五,如果有必要的话

谢谢,伙计们

编辑:我还希望在本周/月初,甚至可能在一小时内,应用一个解决方案

编辑:因此,如果一条记录是在2011年7月18日08:55:00创建的,另一条记录是在2011年7月18日09:05:00创建的,那么我希望第二条记录是通过查询获取的,而不是第一条记录。但是,如果当前的GETDATE是18/07/2011 09:15:00,那么它会变得棘手

添加r.creationTime>='9am'怎么样?

您真的需要hoursfromstartothisday变量吗? 如果您的一天是静态的,从9点到5点,您可以使用以下静态范围:

-缓存当前日期以避免多次调用 声明@startOfADay INT 声明@dayLength INT 声明@currentDate日期时间 设置@currentDate=DATEADDdd,0,DATEDIFFdd,0,GETDATE 设置@startOfADay=9 设置@dayLength=8 选择 ... 从…起 ... 哪里 之间 DATEADDhh,@startOfADay,@currentDate 和 DATEADDhh、@startOfADay+@dayLength、@currentDate
小时从开始到今天意味着什么?这个名字对我们没用。时间的数据类型是什么?时间由于不清楚,请提供样本数据,您是否尝试找到今天上午9点的计算结果?您希望如何处理以下时间?23:59,00:00,00:01,08:59,17:01?-1您的问题更新使这一点比以前更加模糊creationTime>GETDATE在您的模式中是否真的可行?足够公平gbn,但sll得到了它,所以不可能如此模糊。我想到了这一点,这会很好。然而,我把它作为一个基本的例子,然后去苹果公司寻找从本周/月初到“现在”之间的记录的解决方案。我将编辑这个问题以包含它。很高兴听到,所以我回答了你的问题?嗨,sll,谢谢你的代码。现在就试试。我相信你已经回答了我的问题,是的。