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 :

Comment convertir un datetime ?


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 111
    Par défaut Comment convertir un datetime ?
    Bonjour,

    Ca fait 1 heure que j'essai de convertir ma date à chaque fois il me fait des erreurs, je doit mal m'en servir.
    J'essaie d'utiliser CONVERT(varchar,DateField1,131) pour mettre ma date au format voulu dans cette requete :


    SELECT A.prom_id,A.prom_id_product,B.name,B.price,B.stock,B.image, A.prom_date_debut convert(varchar,date,103),A.prom_date_fin,A.prom_price FROM prom_prod A, prod B WHERE (DATEDIFF(""ss"",A.prom_date_debut,getdate())>=0 and DATEDIFF(""ss"",A.prom_date_fin,getdate())>0) and A.prom_id_product=B.catalogid
    J'ai pas très bien compris le 2eme parametre de convert.

    Si quelqu'un peu m'aider

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Je dirais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT A.prom_id,A.prom_id_product,B.name,B.price,B.stock,B.image, convert(varchar,A.prom_date_debut,103),A.prom_date_fin,A.prom_price FROM prom_prod A, prod B WHERE (DATEDIFF(""ss"",A.prom_date_debut,getdate())>=0 and DATEDIFF(""ss"",A.prom_date_fin,getdate())>0) and A.prom_id_product=B.catalogid
    Le deuxieme paramètre est la valeur que tu veux convertir.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 111
    Par défaut
    j'ai déjà essayer j'ai cette erreur :

    [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot use empty object or column names. Use a single space if necessary.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    J'ai parfois ce message lorsque j'utilise des doubles quotes au lieu de simples quotes comme délimiteur de chaîne.
    Ca doit être là : DATEDIFF(""ss""...)
    Tu n'as d'ailleurs pas besoin des ""
    Tu peux essayer ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT A.prom_id,A.prom_id_product,B.name,B.price,B.stock,B.image, convert(varchar,A.prom_date_debut,103),A.prom_date_fin,A.prom_price FROM prom_prod A, prod B WHERE (DATEDIFF(ss,A.prom_date_debut,getdate())>=0 and DATEDIFF(ss,A.prom_date_fin,getdate())>0) and A.prom_id_product=B.catalogid

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 111
    Par défaut
    le problème n'est pas là car ma requête fonctionne parfaitement sans le CONVERT

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    hm, et en ajoutant
    SET QUOTED_IDENTIFIER OFF
    avant la requete ?

    Bon en tout cas je ne m'aventure pas plus loin désolé ^^
    Je ne suis pas assez expérimenté, je risquerais de t'induire en erreur.
    Je passe la main

  7. #7
    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 : 44
    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
    Par défaut
    Bonjour,

    Vous avez oublié la virgule devant le CONVERT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT A.prom_id,
    		A.prom_id_product,
    		B.name,
    		B.price,
    		B.stock,
    		B.image,
    		A.prom_date_debut,
    		CONVERT(VARCHAR,date,103),
    		A.prom_date_fin,
    		A.prom_price
    FROM prom_prod A
    JOIN prod B ON A.prom_id_product = B.catalogid
    WHERE DATEDIFF(second, A.prom_date_debut, GETDATE()) >= 0
    AND DATEDIFF(second, A.prom_date_fin, GETDATE()) > 0

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Certes, mais depuis on est arrivé à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT 
    A.prom_id,
    A.prom_id_product,
    B.name,
    B.price,
    B.stock,
    B.image, 
    convert(varchar,A.prom_date_debut,103),
    A.prom_date_fin,
    A.prom_price 
    FROM prom_prod A, prod B 
    WHERE
    (DATEDIFF(ss,A.prom_date_debut,getdate())>=0 and DATEDIFF(ss,A.prom_date_fin,getdate())>0) 
    and A.prom_id_product=B.catalogid
    et ce code ne marche toujours pas chez lui.
    (encore que je n'ai pas de nouvelles sur le SET QUOTED_IDENTIFIER OFF)

  9. #9
    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 : 44
    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
    Par défaut
    Woops, désolé

    Il n'y a pas besoin de guillemets ni de quotes, ni d'exécuter SET QUOTED_IDENTIFIER ON ...

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Ba oui, la syntaxe de requete est bonne comme ca pour moi.
    Mais il n'empêche qu'il avait toujours une erreur.
    Le fait d'ajouter SET QUOTED_IDENTIFIER OFF c'était plus pour savoir ce que ca donnerait, au cas où il y aurait quelque part ailleurs une chaîne délimitée par des " " qui traîne.
    De toute façon le posteur ne donne plus de nouvelles.

    Le mystère demeurera

  11. #11
    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 : 44
    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
    Par défaut
    Bonjour,

    Le fait d'ajouter SET QUOTED_IDENTIFIER OFF c'était plus pour savoir ce que ca donnerait, au cas où il y aurait quelque part ailleurs une chaîne délimitée par des " " qui traîne.
    OK

    Mais comme vous dites, on n'en saura pas plus

Discussions similaires

  1. [C#] Comment convertir string en DateTime ?
    Par fagos dans le forum C#
    Réponses: 17
    Dernier message: 13/06/2013, 12h42
  2. Réponses: 1
    Dernier message: 30/11/2006, 18h47
  3. [C++ 2.0] Comment convertir un ULONG en System::DateTime ?
    Par hrp dans le forum Framework .NET
    Réponses: 1
    Dernier message: 22/06/2006, 21h20
  4. [C#] Comment convertir un type long en DateTime ?
    Par guillaume16 dans le forum C#
    Réponses: 4
    Dernier message: 22/06/2006, 15h45
  5. Comment convertire un DATETIME en strtotime ?
    Par ghostnet dans le forum Outils
    Réponses: 2
    Dernier message: 13/06/2006, 18h07

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