UPDATE Table SET Value = 5 WHERE DateTime = '03:42:34';
但有时DateTime
将不存在。我想知道是否有任何方法可以让它动态尝试
UPDATE Table SET Value = 5 WHERE DateTime = '03:42:35';
这可能是不可能的,特别是因为'DateTime`是一个字符串,但是想知道是否有某种方法可以做到这一点。
我曾考虑过使用DateTime
的前7个字符进行匹配,但这可能不够精确。
答案 0 :(得分:1)
CASE表达式听起来像是可以做你想要的。
CASE表达式起作用 与其他的IF-THEN-ELSE相似 编程语言。
发生在的可选表达式 在CASE关键字和第一个关键字之间 WHEN关键字称为“基础” 表达。有两种基本形式 CASE表达式:带有 基本表达式和那些没有。
在没有基本表达的CASE中, 评估每个WHEN表达式 结果被视为布尔值, 从最左边开始 继续向右。的结果 CASE表达式是评估 那个表达的那个 对应第一个WHEN 表达式,其值为true。要么, 如果没有WHEN表达式 评估为真,结果为 评估ELSE表达式,如果 任何。如果没有ELSE表达式 没有WHEN表达式 如果为true,那么整体结果为NULL。
答案 1 :(得分:0)
这是你想要的吗?
UPDATE Table
SET Value = 5
WHERE DateTime =
( SELECT MIN(DateTime)
FROM Table
WHERE DateTime >= '03:42:34'
)
;
答案 2 :(得分:0)
我让这项工作以一种直截了当的方式让我感到愚蠢,因为我没想到最初:
UPDATE Table SET Value = 5 WHERE DateTime BETWEEN datetime('2020-03-21 03:42:35', '-1 second') and datetime('2020-03-21 03:42:35', '+1 second')