C#在SQL Server中选择只使用带有sql参数的日期

时间:2016-04-28 02:27:51

标签: c# sql-server date datetime sqlparameters

我目前正在尝试使用Select类型的参数在我的SQL Server数据库中执行Datetime。但是我需要这个参数只有YYYY-MM-DD格式的日期,因为我正在使用SQL中的以下查询并且它正在工作:

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

我阅读了几篇帖子,表明我使用DbType.ToString,但在运行时会产生错误,指出无法将字符串转换为日期/时间格式。

这就是我使用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';";

我需要你们的帮助,我找不到任何可以执行此选择的方法

1 个答案:

答案 0 :(得分:5)

您必须删除''中的= '@adate'。有了'',它可以有效地将您的查询转换为:

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

这意味着将cast([DateAtendimento] as date)与字符串'@date'进行比较,从而将转换为日期错误。