如何在c#中转换datetime,以便它与sql server一起使用?

时间:2014-07-03 00:05:48

标签: c# sql sql-server datetime-format

如果我在sql中编写以下查询它可以正常工作,但是如果我从我的c#程序运行它就会失败。作为查询的结果,我得到-1值。我认为它与转换有关。它应该是程序中的第三个文本框,其中包含查询结果(结果应显示在第三个文本框中)。这是代码:

 conn.Open();
            string anfrage = "select sum(Rechnungsbetrag)  from tbl_Rechnung where AusDatum between '"+txtbox1.Text+"' and '"+txtbox2.Text+"'"; 
            SqlCommand comm = new SqlCommand(anfrage, conn);
            comm.ExecuteNonQuery();

3 个答案:

答案 0 :(得分:1)

以ISO8601格式设置日期格式:YYYY-MM-DDThh:mm:ss.nnn [Z]

以下是您在C#中执行此操作的方法:http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Roundtrip

答案 1 :(得分:1)

有几件事是错的。首先,txtbox1.text和txtbox2.text是字符串。您必须将它们转换为DateTime对象。

接下来,出于各种原因,您确实希望使用查询参数。

最后,对于日期范围查询,between关键字可能会导致您错过记录。这样做更安全:

where SomeDateField >= @StartDate
and SomeDateField < the day after @EndDate

答案 2 :(得分:0)

 string anfrage = "select sum(Rechnungsbetrag)  from tbl_Rechnung where AusDatum between Convert(varchar(10),'"+txtbox1.Text+"',102) and Convert(varchar(10),'"+txtbox2.Text+"',102)";