Extrait date (aaaa/mm/jj) à partir d'un timestamp dans PostgreSQL
Je veux extraire juste la partie de la date à partir d'un timestamp dans PostgreSQL.
J'en ai besoin pour être un postgresql DATE
type afin que je puisse l'insérer dans une autre table qui s'attend à un DATE
valeur.
Par exemple, si j'ai 2011/05/26 09:00:00
, je veux 2011/05/26
J'ai essayé de casting, mais je ne reçois 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é de 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) à partir d'un timestamp dans PostgreSQL?
InformationsquelleAutor keren | 2011-05-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lancer votre timestamp d'une date en suffixant avec
::date
. Ici, dans psql, est un timestamp:Maintenant, nous allons jeter un date:
D'autre part, vous pouvez utiliser
date_trunc
fonction. La différence entre eux est que le dernier renvoie le même type de données commetimestamptz
garder votre fuseau horaire intacte (si vous en avez besoin).CAST(NOW() AS date)
Utiliser le date fonction:
À partir d'un champ de caractères de la représentation d'une date vous pouvez utiliser:
Code de Test:
Résultat du Test:
Avez-vous essayé de le jeter à une date, avec
<mydatetime>::date
?Cela fonctionne pour moi en python 2.7
Un autre kit de test:
Il suffit de ne
select date(timestamp_column)
et vous obtenez seulement la partie de la date.Parfois,
select timestamp_column::date
peut retournerdate 00:00:00
où elle ne supprime pas les00:00:00
partie. Mais j'ai vudate(timestamp_column)
fonctionne parfaitement dans tous les cas. Espérons que cette aide.