我需要能够更新表中某一行的时间信息。该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