T-SQL使用哪種日期格式?它依賴於系統日期嗎?我如何確保無論系統日期格式如何,我的參數都能正確傳遞。這個問題來,因爲錯誤的:哪種SQL日期格式
Error converting data type nvarchar to datetime.
的SQL腳本部分:
CREATE PROCEDURE [dbo].[sz_pipeline04_pipelUpdte_inventory]
-- Add the parameters for the stored procedure here
@myFixDte datetime,
@doInsert bit
AS
BEGIN
調用C#代碼:
public static DataTable GridInventory(string strdProcedureName, DateTime fixDate, bool execInsertYN)
{
DataTable dtbl_inventory = null;
try
{
dtbl_inventory = new DataTable();
using (var conn = new SqlConnection(cls_connRegistry.GetConnStrFull()))
using (var command = new SqlCommand(strdProcedureName, conn)
{
CommandType = CommandType.StoredProcedure
})
{
command.Parameters.Add("@myFixDte", SqlDbType.DateTime).Value = DateTime.Parse(fixDate.ToShortDateString());
command.Parameters.Add("@doInsert", SqlDbType.Bit).Value = execInsertYN;
conn.Open();
SqlDataReader dr = command.ExecuteReader();
dtbl_inventory.Load(dr);
conn.Close();
}
}
catch (Exception datawalile)
{ dtbl_inventory = null; }
return dtbl_inventory;
}
編輯的問題。
[這裏](https://msdn.microsoft.com/ru-ru/library/ms187928.aspx)關於將varchar轉換爲數據類型的鏈接 –
@ N.Molderf謝謝。然而,這裏的問題不是關於SQL中的日期格式,而是我如何知道/獲得當前使用SQL的日期格式,或者使用任何SQL日期格式的每一個工作時間的ONE函數。所以我在我的c#應用程序中發送參數,而GUI日期控件按照系統日期格式更改日期格式 - 很好:我會認爲SQL遵循相同的邏輯,但顯然不是 - 我如何傳遞這些參數。 – Chagbert
理想情況下,如果您從另一種語言訪問SQL,請使用*參數*作爲DateTime值傳遞數據,讓語言綁定/數據訪問庫處理SQL Server的'datetime'類型的轉換並避免傳遞它作爲*字符串*在所有。格式問題僅在將值作爲*字符串*而非適當類型傳遞時纔會出現。 –