请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

露从今夜白
初级会员   /  发表于:2025-1-16 11:17  /   查看:123  /  回复:6
1金币
表结构如下:  现有需求针对指定月份(如6月或者12月)把期间截止日期更新成当前月的最后一天,想利用计划任务,命令如下:  测试返回如图: 请问是哪里错了?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,enmonth是excel里的函数,写sql的话,得使用对应数据库中的函数去获取当月第一天,可以参考下方的教程贴哈 https://blog.csdn.net/horses/article/details/129958517

6 个回复

倒序浏览
最佳答案
最佳答案
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2025-1-16 11:17:13
来自 5#

您好,enmonth是excel里的函数,写sql的话,得使用对应数据库中的函数去获取当月第一天,可以参考下方的教程贴哈
https://blog.csdn.net/horses/article/details/129958517
回复 使用道具 举报
二麻子活字格认证
高级会员   /  发表于:2025-1-16 11:32:28
2#
你用了一个函数 EOMONTH,它有一个参数是 期间截止日期。因为计划任务用不了参数,所以提示没有 期间截止日期 这个参数。你可以在计划任务里调用服务端命令,服务端命令可以用参数。
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2025-1-17 09:16:57
3#
直接使用数据表操作命令是不能将数据库表的字段作为参数的,这里的场景,建议大佬使用执行SQL命令来实现~~

https://www.grapecity.com.cn/sol ... rtcommand/excutesql
回复 使用道具 举报
露从今夜白
初级会员   /  发表于:2025-1-17 10:15:44
4#
Nathan.guo 发表于 2025-1-17 09:16
直接使用数据表操作命令是不能将数据库表的字段作为参数的,这里的场景,建议大佬使用执行SQL命令来实现~~
...

SQL:UPDATE [期间表]
SET [期间截止时间] = CASE
    WHEN MONTH([期间截止时间]) IN (6, 12) THEN
        CASE
            WHEN MONTH([期间截止时间]) = 6 THEN EOMONTH([期间截止时间], 0)
            WHEN MONTH([期间截止时间]) = 12 THEN EOMONTH([期间截止时间], 0)
        END
    ELSE [期间截止时间]
END
WHERE MONTH([期间截止时间]) IN (6, 12);

我试了下 但是计划任务测试返回:SQLite Error 1: 'no such function: EOMONTH'.
回复 使用道具 举报
露从今夜白
初级会员   /  发表于:2025-1-17 14:57:14
6#
Lay.Li 发表于 2025-1-17 12:24
您好,enmonth是excel里的函数,写sql的话,得使用对应数据库中的函数去获取当月第一天,可以参考下方的 ...

好的 谢谢!
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2025-1-17 16:21:55
7#
不客气哈~
后边有问题欢迎随时发帖交流
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部