PostgreSQL, проверка даты относительно «сегодня» - PullRequest
72 голосов
/ 14 октября 2010

Интересно, может ли кто-нибудь помочь с некоторыми Postgres.У меня есть таблица, в которой есть столбец с именем mydate, который является типом даты postgres.Я хочу сделать что-то вроде:

SELECT * FROM MyTable WHERE mydate > [Today-1year]

Я никогда не использовал Postgres прежде, и я уверен, что мне просто нужно знать название некоторых функций - я с удовольствием посмотрю справку самКто-нибудь может указать мне правильное направление?

Спасибо!

Ответы [ 4 ]

129 голосов
/ 14 октября 2010
select * from mytable where mydate > now() - interval '1 year';

Если вас интересует только дата, а не время, замените current_date на now()

57 голосов
/ 14 октября 2010

Я думаю, что это сделает это:

SELECT * FROM MyTable WHERE mydate > now()::date - 365;
8 голосов
/ 14 октября 2010

Это должно дать вам текущую дату минус 1 год:

select now() - interval '1 year';
3 голосов
/ 29 сентября 2016

Вы также можете проверить, используя функцию age()

select * from mytable where age( mydate, now() ) > '1 year';

age(), вернет интервал.

Например, age( '2015-09-22', now() ) вернет -1 years -7 days -10:56:18.274131

См. документация postgresql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...