对于某些人来说这个问题看似简单,你好并且道歉,但我最好是一个平庸的程序员,我在这里处理关键数据。
我正在尝试更新表(Image)中的一列(PArchiveStatus),具体取决于每行中是否有某些状态(ParchiveStatus) is ((100 OR 200) AND ((timestamp>'2014-11-14 00:00:00') AND (timestamp<'2016-02-05 00:00:00')))
。 (&#39;捕获&#39;是时间戳列的名称)
无法触及这两个日期之前和之后的任何内容
我提出了两种变体,两者都不起作用(笑)
向正确的方向微微推动将受到高度赞赏。
变异
UPDATE [Image] SET [PArchiveStatus]='0' WHERE [PArchiveStatus] = 100 AND [Captured] BETWEEN '2014-11-14 00:00:00' AND '2016-02-05 00:00:00';
变异
UPDATE [Image] SET [PArchiveStatus]='0' WHERE [PArchiveStatus]=100 AND [Captured]>'2014-11-14 00:00:00';
朋友也告诉了我这件事
3.变化
UPDATE (SELECT * from Image where PArchiveStatus = 100) SET PArchiveStatus=0 Where Captured BETWEEN '2014-11-14 00:00:00' AND '2016-02-05 00:00:00'
我应该提一下,表中的日期/时间戳不能用于任何其他&#34;格式&#34;而不是查询中的那个,这意味着它必须格式化为 YYYY-MM-DD HH:mm:ss
(24小时格式)并且我老实说不确定我是否可以在单行查询中使用此格式(通过方式是解决方案的另一个要求,因为我只能将单行更新发送到数据库中)
感谢你帮助我解决这个问题。
UPDATE [Image] SET [PArchiveStatus] = 0 WHERE [PArchiveStatus] = 100 AND [Captured] BETWEEN #2014-11-14# AND #2015-12-31#
答案 0 :(得分:0)
不知道为什么要尝试使用字符串进行更新。并将“日期”更改为表中的真实日期值。然后:
UPDATE
[Image]
SET
[PArchiveStatus] = 0
WHERE
[PArchiveStatus] = 100
AND
[Captured] > #2014-11-14 00:00:00#;