我需要能夠更新表中某一行的時間信息。該ID不是唯一的,因此我也使用startTime
列來查找特定行。我正在使用SQL Server CE和C#,因此日期對象是C#中的DateTime
對象。SQL Server CE:在Where子句中使用DateTime更新語句
有沒有另一種方法來優化呢?我似乎無法與WHERE
條款和startTime
匹配? startTime
是SQL Server CE中的datetime
數據類型。
UPDATE tablename
SET endTime = '14/04/2012 9:42:58 PM', duration = '0.052003'
WHERE (startTime = CONVERT(DATETIME, '2012-04-14 21:42:58.000', 120)) AND (id= '14363204')
時間肯定不匹配。在數據庫中記錄爲'14/04/2012 8:51:00 PM'。當我嘗試匹配相同或甚至'2012-04-14 20:51:00.000'時,不會在select語句中顯示任何結果。我需要爲數據庫的精確度做些特別的事嗎? – Ourx 2012-04-14 12:36:51
@Ourx:時間可能以毫秒精度存儲,但毫秒可能不會顯示。除非您可以確定您始終使用相同的時區和精度,否則將時間戳用作ID(或作爲ID)通常是一個糟糕的主意。 – 2012-04-14 12:52:59