Erster Tag des laufenden Jahres

Ich habe die folgende Abfrage in einer Postgresql-database

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

Wie kann ich den '2012-01-01' replace, der nach dem ersten Tag des laufenden Jahres fragt '2012-01-01'

Es gibt noch ein Problem. Wenn ich einen neuen Rekord in der Kontentabelle habe, läuft im selben Augenblick die obige Auswahl, so dass sie mir nicht den Rekord bringt, den ich gerade gemacht habe. Ist das vernünftig? Was ist der beste path, um es zu überholen?

Sie suchen nach date_trunc() , das ein date auf eine bestimmte Genauigkeit (zB year , month , day ) date_trunc() kann:

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

In Ihrer Anfrage:

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

Sie können versuchen, dieses CURRENT_TIMESTAMP.YEAR-01-01 zu verwenden