乘以一个月中的天数

时间:2018-08-31 10:53:26

标签: sql sql-server sql-server-2012

我在这里进行了不错的搜索,但似乎找不到我想要的东西,我认为我为GETDATE使用了错误的语法

我正在尝试使用我们作为公司代码在我的代码中使用的公式。那是

The Price of something / Days in year * days in the month

我正在尝试使用以下内容,但无济于事-

[Rate] =  Price/'365'*month([Period])))

“句点”是列名,例如,月份日期的格式为“ 2018-04-01” 这是基于一个同事向我展示的示例,但是由于我认为我写的完全错误而无法使它正常工作

为这个简单的问题表示歉意,我是SQL代码的新手(仅在4月才开始学习),因此直到我忽略了一些简单的事情!

在这里提供任何帮助

欢呼

W

2 个答案:

答案 0 :(得分:2)

我认为您想要这样的东西(假设一年365天):

select (price / 365.0) * day(eomonth(period)) as rate

如果要考虑leap年,则:

select (case when eomonth(day(year(period)), 2, 1)) = 28
             then (price / 365.0) * day(eomonth(period))
             else (price / 366.0) * day(eomonth(period))
        end) as rate

答案 1 :(得分:1)

我认为您的代码将如下所示

[Rate] =  (Price*1.00/365) * datepart(day, period)

下面是使用getdate()的示例

select rate= (12*1.00/365) * datepart(day, getdate())