我有一張表,每行需要一個時間戳來標記它被插入的時間。我沒有太多的數據庫經驗,但是有些東西告訴我,這最好在數據庫端自動處理,例如通過存儲過程。如何在SQL Server中存儲/檢索時間戳?
MS SQL中有一個時間戳數據類型,但讀取它時,它被視爲一系列數字而不是C#中的DateTime對象。所以,如果我必須進行轉換,它不會僅僅是一個NVARCHAR數據類型嗎?
所以簡單地說,什麼是最簡單的方法(自動?)將時間戳插入到表中時插入一行?
編輯:表格定義非常簡單。它目前只有兩列,但仍缺乏時間戳列。
SqlCommand command = con.CreateCommand();
command.CommandText = "INSERT INTO Bio VALUES (" +
"@ID, @Name)";
command.Parameters.AddWithValue("ID",number);
command.Parameters.AddWithValue("Name", name);
try
{
SqlDataReader thisReader = command.ExecuteReader();
thisReader.Close();
}
catch { // Do something };
解決方案好了,現在它工作。我首先嚐試通過Visual Studio 2008中的服務器資源管理器窗口添加新列。查找我的數據庫,右鍵單擊並選擇「新建查詢」。然後鍵入類似
ALTER TABLE dbo.MyTable ADD CreatedDate datetime NOT NULL DEFAULT (GetUtcDate())
但我得到了
的ALTER TABLE SQL構造不支持 查詢不能在圖和條件窗格圖形表示的消息。
所以相反,我用圖形添加它。首先「打開表格定義」並在「數據類型」下的「列名稱」和「日期時間」下添加「創建日期」。刪除允許空值檢查。然後在列屬性中,我添加了
getutcdate()
在名爲「默認值或綁定」的行的常規部分下。無論何時插入新行,數據庫都會自動將當前日期和時間作爲時間戳。
我試圖使用這個命令行,但發現圖形編輯器更容易。我所做的是添加到原始問題的底部。感謝您的幫助。 –
我知道這是一個非常古老的問題,但是太棒了! – Tom