2012-12-25 59 views
2

可能重複:
How do I get date/time information from a TIMESTAMP column?
How to convert SQL Server’s timestamp column to datetime format的SQL Server INSERT時間戳插入別的

我試圖執行一個插入一個時間戳的簡單查詢。查詢,沒有任何問題,但運行,這是插入列,而不是當前的時間:

0x00000000000007D2 

這是查詢:

INSERT INTO auctions (title, description, finish_date) 
VALUES ('Some title', 'Some description', '05/03/2003 11:15:45') 

從我讀過Timestamp已棄用通過稱爲Rowversion的東西,但我無法在管理工作室中找到這樣的數據類型。

拍賣表:

  • auction_id - bigint
  • title - nvarchar(MAX)
  • description - nvarchar(MAX)
  • start_date - timestamp
  • finish_date - datetime
+1

[見我回答這個以前的SO問題](http://stackoverflow.com/questions/8119386/how-to-convert-sql-servers-timestamp-column-to日期時間格式/ 8119407#8119407) - 'TIMESTAMP'有**無關的日期和/或時間 - 它只是一個數字,系統增加的**行版本**數字.... –

+0

This現在有道理,謝謝:) – Deniz

+1

另一條建議:不要只對所有東西使用'nvarchar(max)'。把一些想法放在你的標題和描述的最大長度是否真的是 - 每個10億個字符 - 真的!?!?請參閱[使用VARCHAR(n)的重點是什麼?](http://www.simple-talk.com/sql/database-administration/whats-the-point-of-using-varchar%28n%29-anymore /) - 謹慎使用'(MAX)'類型** - 只有當您真的**必須存儲超過4,000個Unicode字符時纔會使用**。 –

回答

2

不能使用時間郵票類型來存儲日期。

時間戳基本上是在單個數據庫中完成的插入和更新操作的計數器,因此它對於給定數據庫是本地的,並且沒有實時值。

爲了符合您的插入聲明,您應該使用DateTime,而不是 - 您的start_date和您的finish_date

請參閱此鏈接:http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

+0

我以爲我可以使用時間戳插入當前時間? – Deniz

+0

沒有。奇怪的是,SQL Server中的時間戳數據類型並沒有真正的時間概念。只是相對於數據庫內完成的特定操作的時間。 – 2012-12-25 13:21:08

+0

哇哇謝謝,似乎我正在從MySQL的TIMESTAMP混淆 – Deniz