我有以下公式:
"Value1" * 100 * "Total day in a month" * "Value2"
我有下表:
ID Date Time Value1 Value2
1 2014-01-01 00:00 10 20
2 2014-01-01 01:00 20 5
我想只使用一个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.
答案 0 :(得分:4)
您可以像这样获得给定日期的天数:
DECLARE @date DATETIME = '2014-01-01'
SELECT DATEDIFF(DAY, @date, DATEADD(MONTH, 1, @date))
查询:
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
答案 1 :(得分:1)
此表达式将为您提供date
所在月份的天数,无论它是在哪一天:
datediff(day,
dateadd(month,datediff(month, 0, date),0),
dateadd(month,datediff(month, 0, date)+1,0))
答案 2 :(得分:1)
检查这个答案。您可以使用SQL的EOMONTH
和DAY
函数来获取一个月内的天数。
SELECT ID
,[Date]
,[Time]
,Value1
,Value2
,DAY(EOMONTH(Date)) AS TotalDaysInMonth
,Value1 * 100 * DAY(EOMONTH(Date)) * Value2 AS Result
FROM TABLENAME
答案 3 :(得分:0)
你也可以检查一下。
>> ST=stran(x);
>> plot(abs(ST))