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 :

convert string to datetime


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Par défaut convert string to datetime
    salut,
    j'ai une table "matable"(num, date) tel que date de type datetime.
    dans ma formulaire la date est de type string (string d="24/05/2008").
    pour faire la conversion du string en date j'ai utilisé la fonction convert :
    SELECT CONVERT(datetime, '24/05/2008', 103)je veux remplacer '24/05/2008' par la variale d. et aussi je veux mettre cet requete dans une condition
    comme par exemple:
    select num from matable where date = SELECT CONVERT(datetime, '24/05/2008', 103);

    => j'ai pas trouvé une solution pour utiliser cette requette dans une condtion (dans la clause where)

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    Retirez le Select, je pense que cela devrait aller mieux
    Ce qui me gène c'est d'utiliser un mot réservé (date) comme nom de champ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select num 
    from matable 
    where date = CONVERT(datetime, '24/05/2008', 103);

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Par défaut
    merci delphie , mon problème est résolu
    bon pour le champs "date" c'est une faute de frappe , mon champs est "dat"
    maintenant je veux remplacer 24/05/2008 par un paramètre de la méthode

    c'est à dire mon code est inclus dans une métode comme le montre le code si dessous:

    public int Numero_d(string date1)
    {
    // string strQuery = "select num from matable where dat=(CONVERT(datetime,' 24/05/2008' ,103))";
    string strQuery = "select num from matable where dat=(CONVERT(datetime,date1,103))";
    }
    il m'affiche une erreur
    System.Data.SqlClient.SqlException: Invalid column name 'date1'.
    est ce qu'il ya une solution?

  4. #4
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Il faut lui spécifier que date1 est une variable de la fonction et non du SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public int Numero_d(string date1)
    {
    // string strQuery = "select num from matable where dat=(CONVERT(datetime,' 24/05/2008' ,103))";
    string strQuery = "select num from matable where dat=(CONVERT(datetime," + date1 + ",103))";
    }

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Par défaut
    oui mr vous avez raison, j'ai oublié cet astuce
    mais attention : il faut ajouter les deux cotes sinon erreur ' " +date1+" '

  6. #6
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    exact
    Bonne utilisation.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Par défaut
    j'ai rencontré un autre problème, je veux extraire seulement l'heure du champ "dat" qu'est de type datetime pour le comparer avec la partie heure de "date1" HH:mm:ss(en 24h)

    public int Numero_d(string date1)
    {
    string strQuery = "select num from matable where dat=(CONVERT(datetime,' " + date1 + " ',108))"; //cette requete est false
    }
    bon pour 103 : dd/mm/yy
    pour 108 : hh:mm:ss

    exemple de date1: 24/05/2008 21:00:00
    qu'est ce qu'il faut ajouter ou supprimer pour atteindre la bonne requete
    merci

  8. #8
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Normalement il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HOUR(CONVERT(datetime,' 2008-04-01 17:04:14' ,20))
    pour récupérer l'heure mais le "HOUR" ne semble pas être reconnu par sql server 2K5

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 986
    Billets dans le blog
    6
    Par défaut
    Heure, minute et seconde ne sont en effet pas extractible....
    Il faut parser.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Convert string en datetime
    Par Nanais19 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/10/2012, 15h28
  2. convert string to datetime
    Par khawlita dans le forum C#
    Réponses: 12
    Dernier message: 06/05/2009, 17h38
  3. erreur convertion string/datetime
    Par Yurnero_ dans le forum InfoPath
    Réponses: 3
    Dernier message: 23/05/2008, 16h05
  4. Convertion string => entier
    Par en_gel_ho dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/06/2005, 12h59
  5. convertion string --> long
    Par JulienT dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2005, 23h05

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