日期时间分析查询

时间:2016-11-26 22:08:17

标签: c# sql-server datetime

我试图在数据库中的两个日期之间捕获数据。

当我尝试在SQL Server Management Studio中执行此查询时,它正常工作。

SELECT
    cha_tarihi
FROM
    CARI_HESAP_HAREKETLERI
WHERE
    ha_tarihi BETWEEN '2016-02-10' AND '2016-10-10';

但是,当我想尝试使用我的C#项目时,它没有工作,没有从数据库返回任何数据。

我尝试了两个小时,请帮助解决问题是什么?

在我的C#项目中查询

 var editeddate = DateTime.ParseExact(
    dateEdit1.EditValue.ToString(),
    "d.M.yyyy hh:mm:ss", CultureInfo.InvariantCulture
);

var editeddate2 = DateTime.ParseExact(
    dateEdit2.EditValue.ToString(),
    "d.M.yyyy hh:mm:ss", CultureInfo.InvariantCulture
);

query.Sql =
    @"select cha_tarihi from CARI_HESAP_HAREKETLERI where cha_tarihi between '" +
    editeddate.ToString( "yyyy-MM-dd" ) +
    "' AND '" +
    editeddate2.ToString("yyyy-MM-dd") +
    "'";

1 个答案:

答案 0 :(得分:1)

var sql = @"SELECT cha_tarihi 
            FROM   CARI_HESAP_HAREKETLERI 
            WHERE  cha_tarihi BETWEEN @startdate AND @enddate";

var command = new SqlCommand(sql, {your connection});

// You have EditValue.ToString() - what is the type of this value?
// You maybe be able to skip the DateTime.Parse
command.Parameters.Add("@startdate", SqlDbType.DateTime2)
                  .Value = DateTime.Parse(dateEdit1.EditValue)
                                   .ToString("yyyy-MM-dd"); 
command.Parameters.Add("@enddate", SqlDbType.DateTime2)
                  .Value = DateTime.Parse(dateEdit2.EditValue)
                                   .ToString("yyyy-MM-dd");