我在postgresql数据库中有以下查询
SELECT *
FROM accounts
where insertdate BETWEEN '2012-01-01' AND CURRENT_TIMESTAMP
那么如何替换'2012-01-01'
要求当年第一天
还有一个问题。当我在帐户表中有一个新记录时,同一时刻运行上面的选择,所以它不会给我带来我刚刚制作的记录。这是否合理? 超越它的最佳方式是什么?
答案 0 :(得分:27)
您正在寻找date_trunc()
,它可以将日期截断为指定的精度(例如year
,month
,day
):
SELECT date_trunc('year', now());
在您的查询中:
SELECT * FROM accounts where insertdate BETWEEN
date_trunc('year', now()) AND CURRENT_TIMESTAMP
答案 1 :(得分:1)
您可以尝试使用此CURRENT_TIMESTAMP.YEAR-01-01