SQL提取月份字符,比如202309为9;2010为10,

SQL提取月份字符,比如202309为9;2010为10,不取前面为零的字符,

FineReport liyh13 发布于 2023-11-6 09:55 (编辑于 2023-11-6 10:03)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
1
用户k6280494Lv6资深互助
发布于2023-11-6 09:56(编辑于 2023-11-6 10:05)

rigth(zd,2)*1

不去0

直接 rigth(zd,2)

image.png

  • liyh13 liyh13(提问者) 报错
    2023-11-06 10:05 
  • 用户k6280494 用户k6280494 回复 liyh13(提问者) 你什么数据库,我这边可以的e
    2023-11-06 10:06 
  • 用户k6280494 用户k6280494 回复 liyh13(提问者) 看测试图,不去0,直接 rigth(zd,2),去掉0,就rigth(zd,2)*1
    2023-11-06 10:07 
  • liyh13 liyh13(提问者) 我就是要去0
    2023-11-06 10:08 
  • 用户k6280494 用户k6280494 回复 liyh13(提问者) rigth(zd,2)*1这个很多数据库都支持啊,你用的什么数据库
    2023-11-06 10:09 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-11-6 09:56

你这个什么规律?提取后面2位,转数字?

  • liyh13 liyh13(提问者) 不取前面为零的字符,202301取1,202302取2,202310取10,202311取11
    2023-11-06 10:04 
  • snrtuemc snrtuemc 回复 liyh13(提问者) 按你规则,202310,正常不是0吗?
    2023-11-06 10:06 
  • liyh13 liyh13(提问者) 回复 snrtuemc 我的举例已经很清楚了吧
    2023-11-06 10:09 
  • snrtuemc snrtuemc 回复 liyh13(提问者) 你提问是2010区取0,后面又是202310取10,你要直接取月份,去掉前面0,那就是看你数据库,substr(字段,5,2)*1
    2023-11-06 10:12 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-11-6 09:56

SqlServer

select substring('202309',5,2)*1

image.png

  • liyh13 liyh13(提问者) 我这边不行的?
    2023-11-06 10:05 
  • Z4u3z1 Z4u3z1 回复 liyh13(提问者) 我写的是SqlServer的 你是什么数据库?
    2023-11-06 10:06 
  • liyh13 liyh13(提问者) 回复 Z4u3z1 SqlServer 在设计器编辑,为空
    2023-11-06 10:11 
  • Z4u3z1 Z4u3z1 回复 liyh13(提问者) 完全没问题啊 把\'202309\'(含引号)改成字段名称 (eg:select substring(字段名称,5,2)*1 [new_] from tablename)
    2023-11-06 10:13 
  • Z4u3z1 Z4u3z1 回复 liyh13(提问者) 第二个例子(2010为10)没写错?如果没写错就用用户k6280494的方法(我以为你写错了)
    2023-11-06 10:16 
最佳回答
0
大林3143511Lv5中级互助
发布于2023-11-6 10:07(编辑于 2023-11-6 10:16)

你用的什么数据库,oracle的话可以利用extract()函数:

extract(month from sysdate)

1699236970475.png

最佳回答
0
ID1208Lv6高级互助
发布于2023-11-6 10:11

SQLserver

image.png

最佳回答
0
ahuahuahuaLv2见习互助
发布于2023-11-6 10:19

if(rigth(xxxx,2)>10,rigth(xxxx,2),rigth(xxxx,CHARINDEX('0', Name) - 1))遇到0就停,这想法试试

  • 5关注人数
  • 294浏览人数
  • 最后回答于:2023-11-6 10:19
    请选择关闭问题的原因
    确定 取消
    返回顶部