我相信我遇到了SQL Server 2000處理十六進制數字的問題。SQL Server十六進制處理
如果我做了
select * from table where [timestamp] = 44731446
它返回的行顯示在另一個表中的時間戳0x0000000202AA8C36
同樣,如果我
select * from table2 where [timestamp] = 44731446
它返回的行顯示的時間戳作爲0x0000000002AA8C36(注意丟失2)
MS Calc告訴我,第一個時間戳= 8634666038(十進制),第二個時間戳= 44731446(十進制),它與我在兩個表上的原始查詢匹配。
那麼,爲什麼SQL Server返回一個不同的數字,但成功地查詢它?我相信這是我有更新問題的路線,行不會更新。
什麼數據類型是您的時間戳字段?時間戳數據類型是什麼? – JNK 2010-11-08 15:53:44
是的,它的時間戳 – 2010-11-08 16:04:26
我知道這與數據類型太小有關(並且截斷多餘的2)。我將timestamp數據類型更改爲int,現在看起來工作正常。任何想法爲什麼? – 2010-11-08 16:08:48