Я пытаюсь выбрать все транзакции в PostgreSQL 9, которые произошли раньше, чем в конце прошлой недели. Какую функцию даты я должен использовать для построения такого интервала?Как урезать дату в PostgreSQL?
10
A
ответ
10
> select now();
"2013-09-09 11:43:29.307089+02"
> select date_trunc('week',now()-'1 week'::interval);
"2013-09-02 00:00:00+02" //start of previous week
> select date_trunc('week',now())
"2013-09-09 00:00:00+02" // start of current week
> select date_trunc('week',now())-'1 s'::interval;
"2013-09-08 23:59:59+02" // end of previous week
Таким образом, используя date_trunc('week',now())-'1 s'::interval;
с правой стороны от вашей даты оператор должен работать. Это временная метка со значением часового пояса, которая на самом деле относится к 23:59:59 в воскресенье, но с 2 часами разницы с временем UTC зависит от вашего языка и настроек.
1
Вы можете установить дату или удалить дни с текущего дня.
Показать this: являются дата операторы и функция/времени, присутствующей в Postgres
Я связала 9.1 функции, потому что вы с тегами Postgres 9.1, существует тоже 9,2 ссылки на странице
Можете ли вы дать точный пример того, как получить «конец последней недели», пожалуйста? – yegor256
@ yegor256: Извините, я только что прочитал. См. Ответ regilero. –