使用INSERT命令和executenonquery將當前日期/時間添加到SQL Server表中的首選方法是什麼?我期待像...使用參數的SQLServer INSERT getdate()函數
cmd.Parameters.Add("@theDate", SqlDbType.VarChar, 20)
cmd.Parameters("@theDate").Value = "getdate()"
使用INSERT命令和executenonquery將當前日期/時間添加到SQL Server表中的首選方法是什麼?我期待像...使用參數的SQLServer INSERT getdate()函數
cmd.Parameters.Add("@theDate", SqlDbType.VarChar, 20)
cmd.Parameters("@theDate").Value = "getdate()"
......怎麼
cmd.Parameters.Add("@theDate", SqlDbType.DateTime)
cmd.Parameters("@theDate").Value = DateTime.Now
cmd.Parameters("@theDate").Value = Now()
首先,你應該使用DateTime數據類型的列。其次,在該列上,您可以使用DefaultValue = getdate()約束,因此它僅在數據庫中定義。應用程序不需要插入它。
不需要日期/時間參數。
無論何時調用存儲過程,只需更新服務器級別的日期/時間字段即可。
如果您希望能夠將日期/時間字段更新爲非當前時間,那麼您可以在存儲過程中添加一個可選參數;這樣您的服務器可以在它爲空時將其更新爲getdate(),或者當它需要在特定時間時從應用程序傳遞它。
托馬斯強調設置服務器級別時間的重要性是因爲時區和其他因素。
我想看看您是否可以將文本current_timestamp
直接放入sql代碼中,並完全跳過該參數。如果你不能,那麼是時候使用DateTime.Now了。
工作正常!我不能將此標記爲再過幾分鐘的正確答案,但謝謝! – elbillaf
-1插入的設置日期應由DB處理,而不是應用程序。 –
@TheFallibleFiend是的,它的工作原理,但它是正確的嗎? –