Sql 如何根据SSMS中查询运行的日期返回结果

Sql 如何根据SSMS中查询运行的日期返回结果,sql,sql-server,dateadd,datepart,Sql,Sql Server,Dateadd,Datepart,我有一个问题,我似乎无法用SQL Server解决这个问题。我有一个每月进行的预测金额。我需要一个查询,该查询将根据我运行查询的日期计算剩余预测。我尝试使用DATEPART、DATEADD和DateDiff,但没有成功。有人找到了做类似事情的方法吗 谢谢 如果您使用某种代码语言来访问SQL Server数据库,那么至少可以在这里开始思考一些问题。下面是一些易于理解的经典ASP代码,用于计算一个FractionUse变量,然后可用于SQL语句中的乘法: FirstDayOfCurMonthDate

我有一个问题,我似乎无法用SQL Server解决这个问题。我有一个每月进行的预测金额。我需要一个查询,该查询将根据我运行查询的日期计算剩余预测。我尝试使用DATEPART、DATEADD和DateDiff,但没有成功。有人找到了做类似事情的方法吗


谢谢

如果您使用某种代码语言来访问SQL Server数据库,那么至少可以在这里开始思考一些问题。下面是一些易于理解的经典ASP代码,用于计算一个FractionUse变量,然后可用于SQL语句中的乘法:

FirstDayOfCurMonthDate = DateSerial(Year(Date()), Month(Date()), 1)
CurrentDate = Date()
FinalDayOfCurMonthDate = DateSerial(Year(Date()), Month(Date()) + 1, 1 - 1)

DaysInCurMonthRemaining = DateDiff("D", CurrentDate, FinalDayOfCurMonthDate) + 1
DaysInCurMonthTotal = DateDiff("D", FirstDayOfCurMonthDate, FinalDayOfCurMonthDate) + 1

FractionToUse = DaysInCurMonthRemaining / DaysInCurMonthTotal

我相信我偶然发现了我想要的答案…它有点笨重,但实现了我想要的-将我的日期从查询运行的那天缩短到那个月底:在当前时间戳和日期添加之间,-1,DATEADDm,DATEDIFFm,0,当前时间戳+1,0

看看如何使用GetDate您确实需要一些示例数据和期望的结果。有无数的方法来计算和呈现类似的东西,我已经添加了一个数据的图形。假设我在突出显示的13号运行它-我只想返回到月底的那天的预测总量。有些月有30天,有些月有31天,当然还有28天。我试图找出一些方法,无论我在哪一天运行查询,都可以进行该计算。我假设在非闰年的2月5日,您希望将您的每月总数字乘以5/28?或者可能是4/28,因为第四天还没有结束。请确认/解释您想要应用的规则,也许我们可以提供帮助。我不是建议您硬编码任何东西,只是尝试了解您想要的东西的底部。如果您想要不那么笨重的东西,请尝试下一个月