Первый день текущего года

У меня есть следующий запрос в базе данных postgresql

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

Итак, как я могу заменить '2012-01-01' запрос на первый день текущего года

Есть еще одна проблема. Когда у меня есть новая запись в таблице учетных записей, в тот же момент выполняется вышеуказанный выбор, поэтому он не приносит мне запись, которую я только что сделал. Это разумно? Каков наилучший способ обгонять его?

Ответ 1

Вы ищете date_trunc(), который может усекать дату до указанной точности (например, year, month, day):

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

В вашем запросе:

SELECT * FROM accounts where insertdate BETWEEN 
date_trunc('year', now()) AND CURRENT_TIMESTAMP

Ответ 2

Вы можете попробовать использовать этот CURRENT_TIMESTAMP.YEAR-01-01