簡體   English   中英

字符串未被識別為對SQL Server的有效DateTime C#

[英]String was not recognized as a valid DateTime C# to Sql server

我正在將datetime值從C#傳遞到SQL Server SP。 如果我傳遞的格式為dd-MM-yyyy那么它可以正常工作,但即使有該日期的記錄,也不會從SP返回任何值。 如果我以MM-dd-yyyy格式運行SP,則它將返回錯誤“將數據類型nvarchar轉換為datetime時出錯”。 SP是

execute usp_detData '22/12/2012 00:00:00', '31/12/2013 23:59:59' ---錯誤

execute usp_detData '12/22/2012 00:00:00', '12/31/2013 23:59:59'工作正常

請讓我解決方案

我正在將datetime值從C#傳遞到SQL Server SP。

我相信您是通過字符串串聯傳遞它的。 如果使用DateTime類型的SqlParameter並讓服務器處理它,則更好。

using (SqlCommand cmd = new SqlCommand(" usp_detData", conn))
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@StartDate", DateTime.Now.AddDays(-10));
    cmd.Parameters.AddWithValue("@EndDate", DateTime.Now);
    SqlDataReader dr = cmd.ExecuteReader();
    .....
}

還可以考慮將代碼中的using塊與實現IDisposable的對象一起使用 例如。 SqlCommandSqlConnectionSqlDataReader

嘗試這個 :

DateTime.ParseExact("12/02/21 10:56:09", "dd/MM/YYYY HH:mm:ss", 
    CultureInfo.InvariantCulture
    ).ToString("MMM. dd, yyyy HH:mm:ss")

或經歷此問題將DateTime轉換為指定的格式

使用格式“ yyyy-MM-dd HH:mm:ss”,一切都會好起來的。

暫無
暫無

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

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