apm69 发表于 2024-3-11 13:47:42

SQL命令求助,如何以日期型字段作为判断条件?

需求:希望通过服务端命令中的“执行SQL命令”更新一些符合条件的记录数据。


表名:原料入厂记录表
字段名:是否合格
判断条件:记录日期为今天
使用update命令,更新表中日期为今天的记录的“是否合格”字段为“合格”
在where子句后面换了各种写法,都不行,求专家指点。


UPDATE "原料入厂记录表" SET "是否合格"="合格" WHERE "日期" = '2024/3/11'


Joe.xu 发表于 2024-3-11 13:47:43

这种查询不到数据的原因是,咱们在SQLite的数据库中,日期存储的并不是文本格式,而是一个小数,
想要可以比较需要将咱们传入的参数修改成小数类型,方法也很简单,
咱们服务端命令中有一个函数DATEVALUE,可以将字符串转成对应的数值,再把咱们的参数类型改成double,就可以正常比较获取对应的数据了








Joe.xu 发表于 2024-3-11 14:06:13

您好,可以用 cast(now() as int) 来表示今天,
完整的sql的话可以参考:
UPDATE "原料入厂记录表" SET "是否合格"="合格" WHERE "日期" = cast(now() as int),

楼主试一下,如果还不行的话,可以放上的demo,我们再研究一下~

apm69 发表于 2024-3-11 14:23:38

Joe.xu 发表于 2024-3-11 14:06
您好,可以用 cast(now() as int) 来表示今天,
完整的sql的话可以参考:
UPDATE "原料入厂记录表" SET " ...

案例详见附件
配置如下图:

服务端命令有一个输入参数,名为“判定日期”,用以获取需要自动填充的的日期判断条件。

在“执行SQL命令”中,通过参数“getdate” 获取输入参数“判定日期”的值。并在SQL语句中引用。
但是在服务端命令测试,输入“2024/1/7”

但是结果并未将表中日期为“2024/1/7”的记录内容更新为“合格”



页: [1]
查看完整版本: SQL命令求助,如何以日期型字段作为判断条件?