Умножить на количество дней в месяце - PullRequest
0 голосов
/ 31 августа 2018

У меня был приличный поиск здесь, но я не могу найти то, что я ищу, я думаю, что я использую неправильный синтаксис для GETDATE

Я пытаюсь использовать формулу, которую мы используем как компания, для работы в моем коде. То есть;

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

Я пытаюсь использовать следующее, но безрезультатно -

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

«Период» - это имя столбца, в котором, например, указана дата месяца в формате «2018-04-01». Это основано на примере, который мне показал коллега, но я не могу заставить его работать, так как думаю, что пишу это совершенно неправильно

Извиняюсь за простой вопрос, я новичок в коде SQL (ну, только началось в апреле), поэтому некоторые простые вещи до сих пор мне не известны!

Любая помощь здесь будет очень признательна

Приветствия

W

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Я думаю, ваш код будет похож на

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

ниже приведен пример использования getdate ()

select rate= (12*1.00/365) * datepart(day, getdate())
0 голосов
/ 31 августа 2018

Я думаю, вы хотите что-то вроде этого (предположим, 365 дней в году):

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

Если вы хотите учесть високосные годы, то:

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
...