簡體   English   中英

如何在c#中轉換datetime,使其與sql server兼容?

[英]How to convert datetime in c# so it works with sql server?

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

用ISO8601格式格式化日期:YYYY-MM-DDThh:mm:ss.nnn [Z]

這是在C#中執行此操作的方法: http : //msdn.microsoft.com/zh-cn/library/az4se3k1(v=vs.110).aspx # Roundtrip

有幾處錯誤。 首先,txtbox1.text和txtbox2.text是字符串。 您必須將它們轉換為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)";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM