找回密码
 立即注册

QQ登录

只需一步,快速开始

apm69
金牌服务用户   /  发表于:2024-3-11 13:47  /   查看:504  /  回复:3
10金币
需求:希望通过服务端命令中的“执行SQL命令”更新一些符合条件的记录数据。


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


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


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

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

3 个回复

倒序浏览
最佳答案
最佳答案
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-3-11 13:47:43
来自 4#
这种查询不到数据的原因是,咱们在SQLite的数据库中,日期存储的并不是文本格式,而是一个小数,
想要可以比较需要将咱们传入的参数修改成小数类型,方法也很简单,
咱们服务端命令中有一个函数DATEVALUE,可以将字符串转成对应的数值,再把咱们的参数类型改成double,就可以正常比较获取对应的数据了








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-3-11 14:06:13
2#
您好,可以用 cast(now() as int) 来表示今天,
完整的sql的话可以参考:
UPDATE "原料入厂记录表" SET "是否合格"="合格" WHERE "日期" = cast(now() as int),

楼主试一下,如果还不行的话,可以放上的demo,我们再研究一下~
回复 使用道具 举报
apm69
金牌服务用户   /  发表于:2024-3-11 14:23:38
3#
Joe.xu 发表于 2024-3-11 14:06
您好,可以用 cast(now() as int) 来表示今天,
完整的sql的话可以参考:
UPDATE "原料入厂记录表" SET " ...

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

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

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

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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部