web-dev-qa-db-fra.com

Comment obtenir la date et l'heure de l'horodatage dans la requête de sélection PostgreSQL?

Comment obtenir la date et l'heure uniquement en minutes, pas en secondes, à partir de l'horodatage dans PostgreSQL. J'ai besoin de date et d'heure.

Par exemple:

2000-12-16 12:21:13-05 

De cela j'ai besoin

2000-12-16 12:21 (no seconds and milliseconds only date and time in hours and minutes)

À partir d'un horodatage avec un champ de fuseau horaire, dites update_time, comment obtenir la date et l'heure comme ci-dessus en utilisant la requête de sélection PostgreSQL.

Aidez-moi, s'il vous plaît.

11
user2515189

De nombreuses fonctions date-heure sont disponibles avec postgresql:

Voir la liste ici

http://www.postgresql.org/docs/9.1/static/functions-datetime.html

par exemple.

SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 16

Pour le formatage, vous pouvez les utiliser:

http://www.postgresql.org/docs/9.1/static/functions-formatting.html

par exemple.

select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI') ...
19
davek

Pour obtenir le date à partir d'un timestamp (ou timestamptz) un simple cast est le plus rapide:

SELECT now()::date

Vous obtenez le date selon votre fuseau horaire local de toute façon.

Si vous voulez text dans un certain format, choisissez to_char() comme @ davek fourni .

Si vous souhaitez tronquer (arrondir vers le bas) la valeur d'un timestamp à une unité de temps, utilisez date_trunc() :

SELECT date_trunc('minute', now());
22
Erwin Brandstetter

Cela devrait suffire:

select now()::date, now()::time
    , pg_typeof(now()), pg_typeof(now()::date), pg_typeof(now()::time)
3
albfan