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

如何在视图中拼接多类型数据生成指定格式的唯一UTableID?

解决SQL拼接多类型生成指定格式唯一ID的问题

你的问题核心在于两个关键点:一是数值类型直接相加会被SQL当成算术运算,而非字符串拼接,二是日期转换时未指定目标格式,导致返回了默认的长日期字符串。

正确的SQL语句写法

针对SQL Server环境,你可以这样修改语句:

CAST(T.DateID AS VARCHAR) + '-' + CAST(P.LinkID AS VARCHAR) + '-' + CONVERT(VARCHAR(8), P.PicDateStamp, 112) AS UTableID

也可以统一用CONVERT处理数值类型(效果和CAST一致):

CONVERT(VARCHAR, T.DateID) + '-' + CONVERT(VARCHAR, P.LinkID) + '-' + CONVERT(VARCHAR(8), P.PicDateStamp, 112) AS UTableID

关键细节解释

  1. 数值转字符串:把DateID和LinkID显式转换为VARCHAR,避免SQL误将T.DateID + '-' + P.LinkID判定为数值加法(比如22+74会得到96,而非你需要的"22-74")。
  2. 日期格式控制:CONVERT(VARCHAR(8), P.PicDateStamp, 112)中的112是SQL Server专属的日期格式代码,专门生成yyyyMMdd格式的字符串(比如2018年1月15日会转为"20180115"),完美匹配你想要的格式。

测试验证

当DateID=22、LinkID=74、PicDateStamp='2018-01-15'时,执行上述语句会生成你期望的结果:22-74-20180115。

内容的提问来源于stack exchange,提问作者Johnny Bones

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:12:14