Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 10/04/2007, 10h34   #1
Futur Membre du Club
 
Homme Issouf GUENGANE
Développeur Web
Inscription : août 2004
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Issouf GUENGANE
Localisation : Burkina Faso

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 58
Points : 15
Points : 15
Envoyer un message via MSN à guence Envoyer un message via Yahoo à guence Envoyer un message via Skype™ à guence
Par défaut [FireBird 2] Erreur avec le type TIME

Salut à tous,
Voilà j'ai un petit problème avec ma base de données qui est en dialec 3. J'ai écris un trigger dans lequel je veux additionner des champs de type TIME comme ceci:

/* Debut, Duree et Fin sont de type TIME */

SELECT Debut, Duree
FROM MaTable
WHERE id=1
INTO :debut, :duree;

Fin =:debut + :duree;

La dernière ligne (Fin =:debut + :duree) me signale comme erreur "Expression evaluation not supported"
et quand je l'enlève, je n'ai plus de problème. Comme peut on effectuer des opérations arithmétique en Firebird 2?

Merci d'avance.
guence est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 11h48   #2
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 758
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 49
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 758
Points : 6 779
Points : 6 779
Salut

A ma connaissance, tu ne peux pas additionner 2 valeurs TIME. Mais tu peux procéder ainsi:

par exemple:
Code :
1
2
3
 
SELECT cast('12:00:00' AS time) + (3*3600) + (10*60) + 30
FROM rdb$database;
te renvoie 15:10:30.

pour extraire les heures, minutes et secondes d'une valeur TIME, utilises EXTRACT.
par exemple pour extraire les heures:
Code :
1
2
3
 
SELECT extract(hour FROM cast('14:38' AS time))
FROM rdb$database
te renvoie 14.

Il ne reste plus qu'à adapter ton trigger.

@+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 18h17   #3
Futur Membre du Club
 
Homme Issouf GUENGANE
Développeur Web
Inscription : août 2004
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Issouf GUENGANE
Localisation : Burkina Faso

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 58
Points : 15
Points : 15
Envoyer un message via MSN à guence Envoyer un message via Yahoo à guence Envoyer un message via Skype™ à guence
Merci Claudius,
Avec le EXTRACT,mon problème a été résolu.
J'espère qu'un jour nous arrons la possibilité de manipuler aisement les type Date, Time et TimeStamp sans difficultés.
Merci à tous et Coucou à tous les membres de développez.com
guence 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 09h57.


 
 
 
 
Partenaires

Hébergement Web