2016-04-28 5 views
3

Ich versuche derzeit eine Select in meiner SQL Server-Datenbank mit einem Parameter mit Datetime Typ. Aber ich brauche diese Parameter nur das Format YYYY-MM-DD Datum hat aufgrund der folgenden Abfrage in SQL Ich verwende und es funktioniert:C# Wählen Sie in SQL Server nur mit dem Datum mit SQL-Parameter

select 
    idCliente, DescCliente, DescAnalista , StatusChamado , DataAtendimento 
from 
    Atendimento 
where 
    cast ([DataAtendimento] as date) = '2016-04-27'; 

ich einige Beiträge gelesen darauf hinweisen, dass ich DbType oder .ToString aber beim Laufen sie erzeugen Fehler, der besagt, dass die Zeichenfolge nicht in das Datum/Uhrzeit-Format konvertiert wurde. Diese

ist, wie ich die SqlParameter:

DateTime date; 
date = Data; 

try 
{ 
    sqlClient.Command.Parameters.AddWithValue("@adate", date); 
    sqlClient.Command.CommandText = @" select idCliente, DescCliente, DescAnalista , StatusChamado , DataAtendimento from Atendimento where cast ([DataAtendimento] as date) = '@adate';"; 

ich von euch eine Hilfe benötigen, bin ich jedes Mittel nicht zu finden, die diese wählen

+4

Entfernen Sie das '' '' in '= '@adate';'. –

+0

Ich kann nicht glauben, dass ich Stunden wegen dieser Zitate verhaftet wurde, es hat perfekt funktioniert, danke –

+0

Wir waren alle dort. =) –

Antwort

5

ausführen können Sie die '' entfernen müssen in = '@adate'. Mit den '' an Ort und Stelle, wird es effektiv Ihre Abfrage in:

select 
    idCliente, DescCliente, DescAnalista , StatusChamado , DataAtendimento 
from Atendimento 
where cast ([DataAtendimento] as date) = '@date'; 

Das bedeutet, dass cast([DateAtendimento] as date) gegen die Saite verglichen wird '@date', also die Umwandlung bisher Fehler.

+0

Das war genau das, was passierte, ich glaube nicht, dass ich stundenlang recherchierte und versuchte, das Datum zu konvertieren, dachte, dass das Problem es war, danke für Hilfe –