Получите месяц, разницу дней между двумя столбцами даты - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь исправить некоторые проблемы в моей базе данных, и я хочу пересчитать столбец в моей базе данных на основе других двух столбцов даты.Это поле с плавающей точкой, и я хочу получить разницу между двумя датами в месяцах с десятичной точкой для дней.

Например, если у меня 2 даты '2016-01-15', '2015-02-01' разница должна составлять 12,5 лучших из 12 разниц за 12 месяцев и 0,5 за оставшиеся 15 дней

Вот то, что я пробовал до сих пор, основываясь на моих поискахно я думаю, что я что-то упускаю, так как это говорит мне об ошибке с моей датой col, поскольку она не существует

Select EXTRACT(year FROM vehicle_delivery(date, vehicle_received_date))*12 + EXTRACT(month FROM vehicle_delivery(date, vehicle_received_date));

Где vehicle_delivery - это имя моей таблицы & date - этомоя дата окончания и vehicle_received_date моя дата начала

То же самое радует с этим sql:

select extract('years' from vehicle_delivery) * 12 + extract('months' from vehicle_delivery) + extract('days' from vehicle_delivery) / 30
from (select age(date::timestamp, vehicle_received_date::timestamp)) a;

1 Ответ

0 голосов
/ 30 сентября 2018

SQL должен выглядеть следующим образом:

select extract(year from diff) * 12 + extract(month from diff) + extract(day from diff) / 30
from (select age(date::timestamp, vehicle_received_date::timestamp) as diff
      from vehicle_delivery
     ) vd;

Я не знаю, какова цель / 30, но вы, похоже, этого хотите.

Примечания:

  • Предложение FROM ссылается на таблицу.
  • Первый аргумент в extract() - это ключевое слово, а не строка.
  • Вы хотите сослаться на *Значение 1016 * в extract().
  • extract() возвращает интервал, поэтому извлечение частей довольно избыточно (необходимо, только если вы хотите, чтобы они были в отдельных столбцах).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...