Masz pytania dotyczące formJaki jest najskuteczniejszy sposób wyodrębnienia daty z sygnatury czasowej w PostgreSQL?
select * from foo
where created_on::date = '2014/1/1'
lub
select * from foo
where date_trunc('day', created_on) = '2014/1/1'
lub
select * from foo
where date(created_on) = '2014/1/1'
W jakich warunkach będzie wykonywać różne zapytania lepsze/gorsze? Który z tych trzech wariantów jest najbardziej skuteczny?
trzeba by spojrzeć na realizację planuje się na pewno, ale ogólnie rzecz biorąc, owijając kolumny tabeli w funkcji takich jak Twoje 2. i 3. przykłady zapobiegną używaniu indeksu, co spowoduje przeniesienie do skanowania tabeli. – Brandon
Czwarta możliwość (do przetestowania) to 'wybierz * z foo, gdzie utworzona_na między" 2014/1/1 00:00:00 "a" 2014/1/2 00: 00: 00 "' – Brandon
@brandon: pierwszy wyrażenie uniemożliwi także użycie indeksu. –