Как вычесть сегодняшнюю дату (или найти интервал с идентификаторами дней) в таблице? - PullRequest
2 голосов
/ 24 апреля 2020

Я использую Vertica SQL и у меня следующая таблица:

CREATE temp TABLE XXX (DATE TEXT, PRICE INTEGER);
INSERT INTO XXX VALUES 
('2019-04-27 01:00', 1), ('2019-04-27 02:30', 3), ('2019-04-27 18:00',2), 
('2019-04-28 17:00', 2), ('2019-04-28 21:00', 5), 
('2019-04-29 17:00',50), ('2019-04-29 21:00',10), 
('2019-04-30 17:00',10), ('2019-04-30 21:00',20), 
('2019-05-01 17:00',40), ('2019-05-01 21:00',10), 
('2019-05-02 17:00',10), ('2019-05-02 21:00', 6);

Я хочу найти разницу (вычислить в днях) между сегодняшним днем ​​и датами в таблице. Я пытался использовать

select (date_trunc('month',DATE)-date_trunc('month',current_date)) as DATE, PRICE from XXX

Как я понял, в исходной таблице 13 строк, а в date_trun c ('month', current_date) - 1 строка. В результате у меня ошибка. Как решить эту проблему?

И как я использую Vertica, я должен добавить PostgreSQL или MySQL в тегах?

1 Ответ

2 голосов
/ 24 апреля 2020

Попробуйте либо с datediff, либо с timestampdiff

 datediff('day', date , Now()) as DaysBetweenDates

 timestampdiff(day, date, Now()) as DaysBetweenDates
...