Je veux extraire uniquement la partie date d'un horodatage dans PostgreSQL.
J'ai besoin que ce soit un DATE
type postgresql afin que je puisse l'insérer dans une autre table qui attend une DATE
valeur.
Par exemple, si je l'ai 2011/05/26 09:00:00
, je veux2011/05/26
J'ai essayé le casting, mais je n'ai que 2011:
timestamp:date
cast(timestamp as date)
J'ai essayé to_char()
avec to_date()
:
SELECT to_date(to_char(timestamp, 'YYYY/MM/DD'), 'YYYY/MM/DD')
FROM val3 WHERE id=1;
J'ai essayé d'en faire une fonction:
CREATE OR REPLACE FUNCTION testing() RETURNS void AS '
DECLARE i_date DATE;
BEGIN
SELECT to_date(to_char(val1, "YYYY/MM/DD"),"YYYY/MM/DD")
INTO i_date FROM exampTable WHERE id=1;
INSERT INTO foo(testd) VALUES (i);
END
Quelle est la meilleure façon d'extraire la date (aaaa / mm / jj) d'un horodatage dans PostgreSQL?
la source
Utilisez la fonction date :
D'une représentation de champ de caractères à une date, vous pouvez utiliser:
Code de test:
Résultat du test:
la source
Avez-vous essayé de le diffuser à une date, avec
<mydatetime>::date
?la source
Cela fonctionne pour moi en python 2.7
la source
Un autre kit de test:
la source
Il suffit de faire
select date(timestamp_column)
et vous obtenez la seule la partie date. Parfois, celaselect timestamp_column::date
peut revenirdate 00:00:00
là où il ne supprime pas la00:00:00
pièce. Mais j'ai vudate(timestamp_column)
fonctionner parfaitement dans tous les cas. J'espère que cela t'aides.la source
En postgres, simplement: TO_CHAR (timestamp_column, 'DD / MM / YYYY') as submit_date
la source