Använd ett korrekt date
typ i alla fall. Gör inte lagra text eller flera kolumner. Det skulle vara dyrare och mindre pålitligt.
Använd funktionen to_date()
, som är lämplig för att hantera dina krav direkt. Till exempel, om du kallar det med ett mönster 'YYYYMMDD'
och den faktiska strängen saknar tecken för dag, eller månad och dag, den är som standard den första månaden/dagen på året/månaden:
db=# SELECT to_date('2001', 'YYYYMMDD');
to_date
------------
2001-01-01
db=# SELECT to_date('200103', 'YYYYMMDD');
to_date
------------
2001-03-01
Du kan även lagra en precisionsflagga som anger år/månad/dag om du behöver det.