2011-07-08 44 views

回答

1

......怎麼

cmd.Parameters.Add("@theDate", SqlDbType.DateTime) 
cmd.Parameters("@theDate").Value = DateTime.Now 
+0

工作正常!我不能將此標記爲再過幾分鐘的正確答案,但謝謝! – elbillaf

+0

-1插入的設置日期應由DB處理,而不是應用程序。 –

+0

@TheFallibleFiend是的,它的工作原理,但它是正確的嗎? –

1
cmd.Parameters("@theDate").Value = Now() 
2

首先,你應該使用DateTime數據類型的列。其次,在該列上,您可以使用DefaultValue = getdate()約束,因此它僅在數據庫中定義。應用程序不需要插入它。

+0

這會很方便。我會檢查它。 – elbillaf

+0

下調者應該解釋SO政策中定義的錯誤。這是非常可靠和標準的做事方式,我想知道什麼是不正確的。 –

+0

托馬斯,我不確定你的意思。我沒有降低你的答案。事實上,我贊成它,因爲它是信息。 MF的答案立即爲我工作。我現在無法檢查你的答案(儘管我認爲它會起作用),因爲我對數據庫的唯一訪問是通過我自己編寫的aspx程序 - 而數據庫管理員正在休假。我感謝你的迴應。謝謝,tff。 – elbillaf

1

不需要日期/時間參數。

無論何時調用存儲過程,只需更新服務器級別的日期/時間字段即可。

如果您希望能夠將日期/時間字段更新爲非當前時間,那麼您可以在存儲過程中添加一個可選參數;這樣您的服務器可以在它爲空時將其更新爲getdate(),或者當它需要在特定時間時從應用程序傳遞它。

托馬斯強調設置服務器級別時間的重要性是因爲時區和其他因素。

0

我想看看您是否可以將文本current_timestamp直接放入sql代碼中,並完全跳過該參數。如果你不能,那麼是時候使用DateTime.Now了。