PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 11/12/2010 18:32:44

unisol
Membre

concatener une date + une heure

Bonjour,

j'ai deux champs que je souhaite assembler en un seul
(un champs date et un champs time a fusionner vers un champs timestamp)

mais la requete du type :

update ot set debut_astreinte = (date_maintenance::char || heure_debut::char)::timestamp

ne marche pas:

merci pour votre aide.

Hors ligne

#2 11/12/2010 18:36:20

Re : concatener une date + une heure

Faire une addition :

date '2001-09-28' + time '03:00'  resultat     timestamp '2001-09-28 03:00'

Hors ligne

#3 11/12/2010 18:47:05

Marc Cousin
Membre

Re : concatener une date + une heure

Exactement. Il faut vraiment prendre l'habitude d'utiliser les opérations arithmétiques sur les dates, avec PostgreSQL. C'est bien plus simple et puissant que de repasser par les chaînes de caractère. Les types date, time, timestamp et interval permettent de faire des choses très sympas…


Marc.

Hors ligne

#4 11/12/2010 18:47:32

unisol
Membre

Re : concatener une date + une heure

j'ai fait :

update ot set debut_astreinte = date 'date_maintenance' + time 'heure_debut'  >> marche pas
update ot set debut_astreinte = date date_maintenance + time heure_debut where astreinte = true >> pas mieux

comment adapter votre réponse à ma requête littérale ?

merci pour votre aide

Hors ligne

#5 11/12/2010 18:51:42

unisol
Membre

Re : concatener une date + une heure

excusez moi , en faisant bien comme indiqué ça marche nickel merci :

update ot set debut_astreinte = date_maintenance + heure_debut where heure_debut is not null

Hors ligne

#6 11/12/2010 19:01:38

Marc Cousin
Membre

Re : concatener une date + une heure

Les 'time' et 'date' servaient à préciser explicitement à PostgreSQL comment convertir les chaînes de caractères en entrée ('2001-09-28').

Dans la table, cela ne sert à rien : date_maintenance et heure_debut sont bien déclares en tant que date et time, je présume.


Marc.

Hors ligne

Pied de page des forums