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

Outils SQL Server Discussion :

GetDate() et arithmetic overflow error


Sujet :

Outils SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 60
    Points : 39
    Points
    39
    Par défaut GetDate() et arithmetic overflow error
    Bonjour,
    j'ai le message d'erreur suivant "Arithmetic overflow error converting expression to data type datetime" quand j'execute ma requete SQL dans MS SQL Server 2005 et j'ai cherché comment gérer la date mais je n'ai pas réussi à obtenir ce que je veux: en fait je veux juste faire un "WHERE run_date= aujourd'hui" mais sans tenir compte de l'heure, juste "la date du jour" à n'importe quelle heure. J'ai lu qu'on pouvait faire SELECT Getdate() mais ça n'a pas fonctionné pour moi.
    Pourriez vous m'aider? Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT
    h.run_status as 'Status',
    h.step_id as 'Step ID',
    h.step_name as 'Step Name',
    h.run_time as 'Run Time',
    h.run_duration as 'Run duration'
     
    FROM
    dbo.sysjobhistory h,
    dbo.sysjobs j
     
    WHERE
    h.run_date= (SELECT max(run_date) FROM  dbo.sysjobhistory where run_date > GETDATE() - 1/2 )
    AND j.name='myjob'
    ORDER BY 2;

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 60
    Points : 39
    Points
    39
    Par défaut
    Bonsoir, c'est bon j'ai trouvé d'où vient le probleme.
    D'abord mon message n'est pas dans la bonne rubrique... peut-on le déplacer svp?

    Ensuite le probleme vient du fait que ma requete qui va chercher une date dans une de mes tables, se réfère à une valeur integer... la date est par exemple, pour le 10 juin 2010, stockée sous la forme 20100610 pas très pratique. Or GETDATE retourne un format date, et je crois que c'est pour cela que ma requête me donne un message d'erreur car elle ne sait pas comparer les deux types.

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Essayez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE CAST(CAST(H.run_date AS char(8)) AS datetime) = CAST(FLOOR(CAST(GETDATE() AS float)) AS datetime)
    Pas très SARGable, mais ça marche

    Vous pouvez aussi voir le billet que j'ai écrit à ce sujet

    @++

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 60
    Points : 39
    Points
    39
    Par défaut
    Merci je vais essayer

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 60
    Points : 39
    Points
    39
    Par défaut [RESOLU] GetDate() et arithmetic overflow error
    Merci beaucoup ça fonctionne

    Je vais egalement essayer les requetes decrites dans le billet

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 60
    Points : 39
    Points
    39
    Par défaut
    Merci beaucoup, cela fonctionne mais on me propose aussi cela:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHERE 
     
    h.run_date= (YEAR(GETDATE())* 10000 + MONTH(GETDATE()) * 100 + DAY(GETDATE()))
    Qui fonctionne aussi en apparence.
    Quelle est la différence..?

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

Discussions similaires

  1. Arithmetic Overflow error
    Par Guigsounet dans le forum Développement
    Réponses: 2
    Dernier message: 08/06/2015, 17h37
  2. Stack Overflow Error
    Par bousnguar dans le forum JSF
    Réponses: 5
    Dernier message: 11/08/2008, 11h28
  3. [SQSH] Arithmetic overflow
    Par ecerisier dans le forum Outils
    Réponses: 9
    Dernier message: 08/11/2007, 17h12
  4. #8115 Arithmetic overflow error
    Par dev_Elo dans le forum Access
    Réponses: 3
    Dernier message: 06/02/2007, 14h49
  5. Réponses: 3
    Dernier message: 16/09/2004, 14h11

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