SQL 服务器中的 C# Select 仅使用带 sql 参数的日期

C# Select in SQL Server just using the Date with sql parameters

我目前正在尝试使用 Datetime 类型的参数在我的 SQL 服务器数据库中执行 Select。但是我需要这个参数只有 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';";

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

您必须删除 = '@adate' 中的 ''。使用 '',它有效地将您的查询变成:

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

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