16

我在 postgresql 数据库中有以下查询

SELECT * 
FROM accounts 
where insertdate BETWEEN '2012-01-01' AND CURRENT_TIMESTAMP

那么我怎样才能代替今年'2012-01-01'的第一天的要求

还有一个问题。当我在帐户表中有一条新记录时,同一时刻正在运行上面的选择,所以它不会给我带来我刚刚制作的记录。这合理吗?超越它的最佳方法是什么?

4

2 回答 2

35

您正在寻找date_trunc(),它可以将日期截断为指定的精度(例如year, month, day):

SELECT date_trunc('year', now());

在您的查询中:

SELECT * FROM accounts where insertdate BETWEEN 
date_trunc('year', now()) AND CURRENT_TIMESTAMP
于 2012-06-18T09:51:20.643 回答
1

您可以尝试使用此 CURRENT_TIMESTAMP.YEAR-01-01

于 2012-06-18T09:53:42.390 回答