我想在PostgreSQL 9中选择所有早于上周结束时间的交易记录。我应该使用哪个日期函数来构建这样一个时间间隔?
我想在PostgreSQL 9中选择所有早于上周结束时间的交易记录。我应该使用哪个日期函数来构建这样一个时间间隔?
> 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;
应该可以正常工作。这是一个带有时区的时间戳值,实际上是指UTC时间周日的23:59:59,但与UTC时间相差2个小时,具体取决于您的语言环境和设置。