如何在c#中转换日期时间,以便与sql server一起工作

本文关键字:sql server 工作 一起 时间 日期 转换 | 更新日期: 2023-09-27 18:11:09

如果我在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();

如何在c#中转换日期时间,以便与sql server一起工作

按照ISO8601格式设置日期:YYYY-MM-DDThh:mm:ss。nnn[Z]

在c#中是这样做的:http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Roundtrip

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

接下来,由于各种原因,您确实需要使用查询参数。

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

where SomeDateField >= @StartDate
and SomeDateField < the day after @EndDate
 string anfrage = "select sum(Rechnungsbetrag)  from tbl_Rechnung where AusDatum between Convert(varchar(10),'"+txtbox1.Text+"',102) and Convert(varchar(10),'"+txtbox2.Text+"',102)";