You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL存储过程单引号拼接问题:分区自动化脚本字符串拼接异常

解决MySQL分区脚本中日期值单引号拼接问题

在MySQL的字符串常量中,要输出一个单引号,必须用两个连续的单引号('')进行转义。你原来的拼接语句因为转义逻辑错误,导致无法给日期值正确添加包裹的单引号。

修正方案一:多层单引号转义

直接调整转义逻辑,在@partition_ts前后各添加四个单引号('''')——外层字符串的单引号需要转义,四个单引号最终会解析为一个实际输出的单引号:

SET @q = 'SELECT CONCAT(@query, '' PARTITION '', @partition_name, '' VALUES LESS THAN (TO_DAYS('''''', @partition_ts, ''''''))'') INTO @query';

修正方案二:使用CHAR(39)替代单引号转义

如果觉得多层转义容易混乱,可以用CHAR(39)来表示单引号(单引号的ASCII码为39),这种写法更直观:

SET @q = 'SELECT CONCAT(@query, '' PARTITION '', @partition_name, '' VALUES LESS THAN (TO_DAYS('', CHAR(39), @partition_ts, CHAR(39), ''))'') INTO @query';

两种方案都能生成你需要的格式:

PARTITION pweek38 VALUES LESS THAN (TO_DAYS('2024-09-22 00:00:00.000000'))

内容的提问来源于stack exchange,提问作者code-geek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 09:05:24