IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

NOUVEAU : Manipulation DATE et HEURE dans procédure stockées


Sujet :

SQL Firebird

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 613
    Points : 214
    Points
    214
    Par défaut NOUVEAU : Manipulation DATE et HEURE dans procédure stockées
    Bonjour

    Existe-t-il des fonctions pour manipuler au sein d'une procédure stockée les champs date et heure :

    1) je souhaiterai notamment mettre à jour un champ de type TIME ou TIMESTAMP en forçant les secondes à 0.

    2) Calculer l'intervalle de temps entre deux données de type TIMESTAMP

    Merci d'avance. [/b]

  2. #2
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    On ne saisie pas trop ton problème...
    As-tu regardé la FAQ ?

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    la fonction "extract" permet d'extraire les éléments un par un, en les recombinants sous le format (pex) year-month-day et un cast tu obtiendra une date sans heure, sinon il existe les udf qui permettent ce genre de manip

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 613
    Points : 214
    Points
    214
    Par défaut
    En fait voilà ce que je veux effectuer.

    Dans une procédure stockée je reçois en paramètre une donnée de type TIMESTAMP ( YYYY/MM/DD HH:MM:SS).

    Je souhaite la comparer à une colonne d'une table de même type, mais sans tenir compte des secondes !

    Donc je dois forcer la valeur des secondes à 0 (YYYY/MM/DD HH:MM:00) dans ma variable d'entrée.

    Comment puis je faire cela au sein de la procédure stockée ?

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Je souhaite la comparer à une colonne d'une table de même type, mais sans tenir compte des secondes !
    OK

    Donc je dois forcer la valeur des secondes à 0 (YYYY/MM/DD HH:MM:00) dans ma variable d'entrée
    là je ne suis plus d'accord : tu peux faire autrement => par exemple tu peux utiliser des UDF dont EXTRACTDATE (cf la bibliothèque rfunc.dll).

    Ex : pour renvoyer les lignes d'une table satisfaisant MyDate_1 = MyDate_2 quelles que soient les heures, minutes et secondes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM ...
    WHERE EXTRACTDATE(MyDate_1) = EXTRACTDATE(MyDate_2)

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 613
    Points : 214
    Points
    214
    Par défaut
    Est-ce que la fonction SQL EXTRACT permet d'extraire plusieurs champs à la fois ?

    Exemple :
    EXTRACT (HOUR FROM CHAMPHEURE) ... Possible

    EXTRACT (HOUR MINUTE FROM CHAMPHEURE) ... Possible ???

    A mon avis non, malheureusement !!
    ( cela m'apporterait une solution même si pour l'instant j'ai contourné le pb ) !

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Est-ce que la fonction SQL EXTRACT permet d'extraire plusieurs champs à la fois ?
    apparemment non mais tu peux enchainer les instructions EXTRACT (en combinant éventuellement des opérateurs de calculs), ça rallonge juste le nombre de caractères de ta requête.

    Ex : EXTRACT(HOUR FROM CHAMPHEURE), EXTRACT(MINUTE FROM CHAMPHEURE)

    Cette solution ne te convient pas ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 613
    Points : 214
    Points
    214
    Par défaut
    Merci. Je pense que je peux m'en sortir avec cette solution.

    Mais en attendant une refonte de ma procédure stockée je contourne le problème. En fait c'est mon application appelante en C qui me fournit une date formattée avec les secondes à 00.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/08/2021, 15h52
  2. Réponses: 1
    Dernier message: 06/03/2006, 11h58
  3. Alter table dans procédure stockée
    Par mehitabelle dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/11/2005, 17h14
  4. procédures stockées dans procédure stockée
    Par olivc dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/05/2005, 17h58
  5. SQL dans Procédure stockée
    Par julure dans le forum Oracle
    Réponses: 13
    Dernier message: 02/11/2004, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo