Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/06/2007, 15h58   #1
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
Par défaut Recuperer l'année à partir d'un timestanp

Bonjour,

Via mon application PHP, je stock mes date au format timestanp dans ma base postgres 7.4. Je souhaite extraire l'année via une requête sql. Le problème est que je ne trouva pas la fonction qui fait cela.

Pouvez vous m'aider ?

Merci

Mic
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 16h05   #2
Membre habitué
 
Inscription : mars 2007
Messages : 107
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 107
Points : 106
Points : 106
tiens c'est
dinguot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 16h13   #3
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
ok merci, j'ai pourtant regarder dans la doc de postgres mais je ne l'ai pas vu.

En revanche moi mes valeurs sont sous le format : 982352320 (nombre de seconde depuis l'année 1970....) et je ne voit pas de fonction qui résoud mon problème

Mic
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 16h40   #4
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Code :
1
2
3
4
5
SELECT date_part('year',to_timestamp(1182327054));
--- Renvoie 2007
--- date_part est équivalent à extract
SELECT extract('year' FROM to_timestamp(1182327054));
--- Renvoie 2007
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 16h43   #5
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
ok, mais il me dit que to_timestamp n'existe pas/

Comment je fais pour l'avoir cette fonction

Merci

Mic
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 16h45   #6
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Ca n'a rien à voir avec ta demande, mais il y a une fonction qui je trouve génial, c'est date_trunc
Code :
1
2
3
 
SELECT date_trunc('day', to_timestamp(1182327054));
-- Renvoie 2007-06-20 00:00:00+02
En fait, dans notre cas, la fonction limite la date au jour uniquement. Les heures, minutes et secondes sont à 0.

Code :
1
2
SELECT date_trunc('hour', to_timestamp(1182327054));
-- Renvoie 2007-06-20 10:00:00+02
Idem, mais la date est limité à l'heure. Les minutes et secondes sont à 0.

C'était la minute découverte !!
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 17h05   #7
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
je viens de trouver la fameuse fonction to_timestamp

la voici
Code :
1
2
3
4
5
6
7
8
9
 
CREATE FUNCTION to_timestamp (double precision)
    returns timestamptz
    LANGUAGE sql AS '
    select (
        (\'epoch\'::timestamptz + $1 * \'1 second\'::interval)
            at time zone \'UTC\'
        ) at time zone \'UTC\'
    ';
Fonction utile à mettre dans la Faq ?

merci à tous

Mic
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h16.


 
 
 
 
Partenaires

Hébergement Web