none
Gestion Date dans une requête SQL RRS feed

  • Question

  • Bonjour, j'ai une méthode avec 2 paramètres DateTime et j'otiens une erreur "The conversion of a varchar data type to a smalldatetime data type resulted in an" +     " out-of-range value." lorsque je les utilise dans ma requête SQL.

    Je travaille avec Visual Studio 2012 et Sql Server 2008 R2

    Voici mon code : 
    public static List<string> Helper_Statistic_6(DateTime start, DateTime end){
    
                DateTime dateStart = start;
                DateTime dateEnd = end;
    
                string query = "SELECT ... FROM ... WHERE DATE BETWEEN CONVERT(VARCHAR(10),'" + dateStart+ "',120) and CONVERT(VARCHAR(10),'" + dateEnd+ "',120) ";
    }

    Merci.



    • Modifié jaycee23 jeudi 20 février 2014 16:15
    jeudi 20 février 2014 16:13

Réponses

  • J'ai enfin trouvé une solution :

    "SELECT ... FROM ... WHERE [DATE] BETWEEN @start and @end"
     
    command.Parameters.Add(new SqlParameter("start", start));
    command.Parameters.Add(new SqlParameter("end", end));


    fenerbahce

    • Marqué comme réponse jaycee23 jeudi 20 février 2014 23:14
    jeudi 20 février 2014 23:14

Toutes les réponses

  • Bonjour,

    Essaie de mettre directement dans ta requête :

    dateStart.ToString("dd/MM/yyyy") 
    dateEnd.ToString("dd/MM/yyyy")

    Cordialement,

    Geoffrey

    jeudi 20 février 2014 21:05
  • Bonjour Geoffrey, merci pour ta réponse.

    J'ai essayé de cette manière : 

    string query = "SELECT ... FROM ... WHERE DATE BETWEEN CONVERT(VARCHAR(10),'" + dateStart.ToString("dd/MM/yyyy") + "',120) and CONVERT(VARCHAR(10),'" + dateEnd.ToString("dd/MM/yyyy")  + "',120)";
    


    mais aussi comme cela : 

    string query = "SELECT ... FROM ... WHERE DATE BETWEEN '" + dateStart.ToString("dd/MM/yyyy") + "' and '" + dateEnd.ToString() + "'";
    

    Mais en vain , j'ai toujours l'erreur.


    fenerbahce

    jeudi 20 février 2014 22:21
  • J'ai enfin trouvé une solution :

    "SELECT ... FROM ... WHERE [DATE] BETWEEN @start and @end"
     
    command.Parameters.Add(new SqlParameter("start", start));
    command.Parameters.Add(new SqlParameter("end", end));


    fenerbahce

    • Marqué comme réponse jaycee23 jeudi 20 février 2014 23:14
    jeudi 20 février 2014 23:14