2010-11-25 7 views
1

J'ai une base de données postgres avec un champ datetime. Je voudrais le convertir de façon permanente en un champ de date (c'est-à-dire supprimer l'élément de temps). Quelle est la meilleure façon d'y parvenir? Y a-t-il un moyen de le faire sans avoir à vider la table dans une nouvelle table?Convertir en permanence la date et l'heure

Répondre

6

En supposant que vous voulez dire un horodatage avec "datetime".

ALTER TABLE foo ALTER COLUMN bar TYPE date; 
2

Créez un nouveau champ temporaire et UPDATE yourtable SET newfield = oldfield::date avec la fonction de conversion appropriée, puis supprimez simplement l'ancien champ et renommez le nouveau champ.

+0

ah oui, bien sûr. Assez simple. Je vous remercie. –

+0

Ceci est fonctionnellement équivalent à ALTER TABLE (modulo toutes les contraintes ou similaire couvrant la colonne) mais les implémentations sont différentes ... – araqnid