今年的第一天

时间:2012-06-18 09:48:11

标签: sql postgresql

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

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

那么如何替换'2012-01-01'要求当年第一天

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

2 个答案:

答案 0 :(得分:27)

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

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