SQL:一个月内的总天数

Ham*_*teu 6 sql t-sql sql-server sql-server-2008

我有以下公式:

"Value1" * 100 * "Total day in a month" * "Value2"
Run Code Online (Sandbox Code Playgroud)

我有下表:

ID     Date        Time     Value1     Value2
1      2014-01-01  00:00    10         20
2      2014-01-01  01:00    20         5
Run Code Online (Sandbox Code Playgroud)

我想在一年中选择一个只使用一个参数的数据Year.
如何将公式应用于查询?

结果应该是:

ID     Date        Time     Value1     Value2   TotalDayinMonth   Result
1      2014-01-01  00:00    10         20       31                620000
2      2014-01-01  01:00    20         5        31                310000
ff.   
Run Code Online (Sandbox Code Playgroud)

sql*_*ser 4

您可以像这样获取给定日期的天数:

DECLARE @date DATETIME = '2014-01-01'
SELECT DATEDIFF(DAY, @date, DATEADD(MONTH, 1, @date))
Run Code Online (Sandbox Code Playgroud)

和查询:

SELECT  ID
        ,[Date]
        ,[Time]
        ,Value1
        ,Value2
        ,DATEDIFF(DAY, [Date], DATEADD(MONTH, 1, [Date])) AS TotalDayinMonth
        ,Value1 * 100 * DATEDIFF(DAY, [Date], DATEADD(MONTH, 1, [Date])) * Value2 AS Result
FROM yourTable
Run Code Online (Sandbox Code Playgroud)