MsSQL/Classic ASP-从时间a到时间b的Select语句

MsSQL/Classic ASP-从时间a到时间b的Select语句,sql,sql-server,asp-classic,Sql,Sql Server,Asp Classic,我有一个相当复杂的查询,我需要扩展,但不知道如何进行 目前,我正在使用下面的查询来输出一些值 SELECT CONVERT(CHAR(8), pay.PaidUntil, 10) as LastDay, COUNT(*) As PaymentsDue, SUM(sales.Amount) As TotalDue FROM UserPaidUntil pay INNER JOIN Sales sales ON pay.Sales_ID = sales.Sale

我有一个相当复杂的查询,我需要扩展,但不知道如何进行

目前,我正在使用下面的查询来输出一些值

SELECT CONVERT(CHAR(8), pay.PaidUntil, 10) as LastDay, 
       COUNT(*) As PaymentsDue, 
       SUM(sales.Amount) As TotalDue 
FROM UserPaidUntil pay INNER JOIN Sales sales 
 ON pay.Sales_ID = sales.Sales_ID 
WHERE pay.PaidUntil > getDate() 
 AND pay.PaidUntil < DateAdd(day, 10, getDate()) 
 AND pay.Billing_ID = 2 
GROUP BY CONVERT(CHAR(8), pay.PaidUntil, 10) 
ORDER BY CONVERT(CHAR(8), pay.PaidUntil, 10)
选择CONVERT(CHAR(8),pay.PaidUntil,10)作为最后一天,
将(*)算作付款用途,
应付总额(销售额、金额)
从UserPaidUntil支付内部加入销售
ON pay.Sales\u ID=Sales.Sales\u ID
其中pay.PaidUntil>getDate()
和pay.PaidUntil
目前,该脚本获取两个日期之间的值,相隔10天,然后按日期分组

现在我需要做的是更改sql,使每天实际上从A天的上午10:01到B天的上午10:00

UserPaidUntil.PaidUntil是包含日期的字段

我不知道从哪里开始,所以我想我会问是否有人可以帮助我


干杯

我没有这句话的测试人员。。它将是这样的:

SELECT CONVERT(CHAR(8), DateAdd(hour, 10, pay.PaidUntil), 10) as LastDay, 
COUNT(*) As PaymentsDue, 
SUM(sales.Amount) As TotalDue 
FROM UserPaidUntil pay INNER JOIN Sales sales 
ON pay.Sales_ID = sales.Sales_ID 
WHERE DateAdd(hour, 10, pay.PaidUntil) > getDate() 
AND DateAdd(hour, 10, pay.PaidUntil) < DateAdd(day, 10, getDate()) 
AND pay.Billing_ID = 2 
GROUP BY CONVERT(CHAR(8), DateAdd(hour, 10, pay.PaidUntil), 10) 
ORDER BY CONVERT(CHAR(8), DateAdd(hour, 10, pay.PaidUntil), 10)
选择CONVERT(字符(8),DateAdd(小时,10,pay.PaidUntil),10)作为LastDay,
将(*)算作付款用途,
应付总额(销售额、金额)
从UserPaidUntil支付内部加入销售
ON pay.Sales\u ID=Sales.Sales\u ID
其中DateAdd(小时,10,pay.PaidUntil)>getDate()
和DateAdd(hour,10,pay.PaidUntil)
你的意思是
UserPaidUntil.PaidUntil
在datetime数据类型中吗?@Charlesliam PaidUntil列是datetime yesClose,但没有雪茄。数字不太相符。我知道你增加了10个小时,将循环时间延长到上午10:00,但循环时间从上午10:01开始,到第二天上午10:00结束。您需要在开始时增加1分钟。