怎样取字段中间的值?

hzybc 2014-03-10 10:21:30
SQL表中有一字段(PZH)
值为:

2014-1-1
2014-5-1230
2014-10-256
2014-11-5555

想要取得:
1
5
10
11

也就是取二个负号“-”中间的值
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2014-03-10
  • 打赏
  • 举报
回复

create table hz(PZH varchar(20))

insert into hz
 select '2014-1-1' union all
 select '2014-5-1230' union all
 select '2014-10-256' union all
 select '2014-11-5555'


select substring(PZH,
                 charindex('-',PZH,1)+1,
                 charindex('-',PZH,charindex('-',PZH,1)+1)-charindex('-',PZH,1)-1) 'p2'
 from hz

/*
p2
--------------------
1
5
10
11

(4 row(s) affected)
*/
LongRui888 2014-03-10
  • 打赏
  • 举报
回复
引用 3 楼 hzybc 的回复:
parsename 函数要求有二个参数
红色部分就是parsename的第二个参数: select parsename(replace(PZH,'-','.'),2) from tb
hzybc 2014-03-10
  • 打赏
  • 举报
回复
OK,谢谢版主
--小F-- 2014-03-10
  • 打赏
  • 举报
回复
引用 3 楼 hzybc 的回复:
parsename 函数要求有二个参数
select parsename(replace(PZH,'-','.'),2) from tb
hzybc 2014-03-10
  • 打赏
  • 举报
回复
parsename 函数要求有二个参数
--小F-- 2014-03-10
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2014-03-10 10:22:53
-- Verstion:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
--	Jul  9 2008 14:43:34 
--	Copyright (c) 1988-2008 Microsoft Corporation
--	Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go 
create table [tb]([pzh] varchar(12))
insert [tb]
select '2014-1-1' union all
select '2014-5-1230' union all
select '2014-10-256' union all
select '2014-11-5555'
--------------开始查询--------------------------
select parsename(replace(PZH,'-','.'),2) from tb
----------------结果----------------------------
/* --------------------------------------------------------------------------------------------------------------------------------
1
5
10
11

(4 行受影响)
*/
--小F-- 2014-03-10
  • 打赏
  • 举报
回复
都是这样固定的格式吗?
select parsename(replace(PZH,'-','.),2) from tb

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧