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

MS SQL Server Discussion :

Utilisation DATEADD petite probleme


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut Utilisation DATEADD petite probleme
    Salut a tous et merci pour lire ma petite question!

    J'ai besoin d'utiliser la fonction dateadd et il parait qu'il me manque quelque chose pour bien comprendre l'utilisation dans divers examples de cette fonction.

    Je ne sais pas pourquoi cette fonction ne marche pas

    Voila le code:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    DECLARE @datetime datetime 
    SET @datetime= '2007-01-01 13:10:10.1111111'
    SELECT 'year', DATEADD(year,1,@datetime)
    UNION ALL
    SELECT 'quarter',DATEADD(quarter,1,@datetime)
    UNION ALL
    SELECT 'month',DATEADD(month,1,@datetime)
    UNION ALL
    SELECT 'dayofyear',DATEADD(dayofyear,1,@datetime)
    UNION ALL
    SELECT 'day',DATEADD(day,1,@datetime)
    UNION ALL
    SELECT 'week',DATEADD(week,1,@datetime)
    UNION ALL
    SELECT 'weekday',DATEADD(weekday,1,@datetime)
    UNION ALL
    SELECT 'hour',DATEADD(hour,1,@datetime)
    UNION ALL
    SELECT 'minute',DATEADD(minute,1,@datetime)
    UNION ALL
    SELECT 'second',DATEADD(second,1,@datetime)
    UNION ALL
    SELECT 'millisecond',DATEADD(millisecond,1,@datetime)
    Erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg 241, Level 16, State 1, Line 2
    Conversion failed when converting datetime from character string.
    Resultat voulu par le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Year         2008-01-01 13:10:10.1111111
    quarter      2007-04-01 13:10:10.1111111
    month        2007-02-01 13:10:10.1111111
    dayofyear    2007-01-02 13:10:10.1111111
    day          2007-01-02 13:10:10.1111111
    week         2007-01-08 13:10:10.1111111
    weekday      2007-01-02 13:10:10.1111111
    hour         2007-01-01 14:10:10.1111111
    minute       2007-01-01 13:11:10.1111111
    second       2007-01-01 13:10:11.1111111
    millisecond  2007-01-01 13:10:10.1121111
    Aussi l'example suivante comporte la meme erreur:

    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
     
    DECLARE @datetime2 datetime;
    SET @datetime2 = '2007-01-01 01:01:01.1111111';
    --Statement                                 Result   
    -------------------------------------------------------------------                                   
    SELECT DATEADD(quarter,4,@datetime2);     --2008-01-01 01:01:01.110
    SELECT DATEADD(month,13,@datetime2);      --2008-02-01 01:01:01.110
    SELECT DATEADD(dayofyear,365,@datetime2); --2008-01-01 01:01:01.110
    SELECT DATEADD(day,365,@datetime2);       --2008-01-01 01:01:01.110
    SELECT DATEADD(week,5,@datetime2);        --2007-02-05 01:01:01.110
    SELECT DATEADD(weekday,31,@datetime2);    --2007-02-01 01:01:01.110
    SELECT DATEADD(hour,23,@datetime2);       --2007-01-02 00:01:01.110
    SELECT DATEADD(minute,59,@datetime2);     --2007-01-01 02:00:01.110
    SELECT DATEADD(second,59,@datetime2);     --2007-01-01 01:02:00.110
    SELECT DATEADD(millisecond,1,@datetime2); --2007-01-01 01:01:01.110

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    La précision du datetime est à la milliseconde, avec le code suivant ça devrait mieux aller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @datetime= '2007-01-01 13:10:10.111'

  3. #3
    Invité
    Invité(e)
    Par défaut
    Si tu avais consulté l'aide, le type datetime a une précision de 3.33 millisecondes. ( http://msdn.microsoft.com/en-us/library/ms186724.aspx )
    Donc ta précision est trop grande et plante avec le type de donnée.

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @datetime= '2007-01-01 13:10:10.111'

  4. #4
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Merci beaucoup a tous les deux!

    J'ai corrige l'erreur!


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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/11/2009, 23h35
  2. Petit problème de fork
    Par osmose22 dans le forum Linux
    Réponses: 7
    Dernier message: 18/03/2007, 21h10
  3. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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