首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 语句查询字段,依据分隔符截取该字符串输出

2014-01-19 
sql 语句查询字段,根据分隔符截取该字符串输出有一个数据库database中数据表msg有三个字段,id,date,data现

sql 语句查询字段,根据分隔符截取该字符串输出
有一个数据库database中数据表msg有三个字段,id,date,data
sql 语句查询字段,依据分隔符截取该字符串输出
现在想把msg信息查询输出,
实现date字段按空格分成两个字段,如2014-1-16为日期字段,16:51:25为时间字段,
data字段按空格分为五个字段
最终效果如下:
sql 语句查询字段,依据分隔符截取该字符串输出
我百度学习到可以用Split函数
select date.Split(' ')[0] as 日期,data.Split(' ')[1] as 时间 from msg
貌似不对
请高手指教
[解决办法]


declare @t table(id int, date datetime,data varchar(2000))
insert into @t(id,date,data)
select 23,'2014-01-16 16:51:29.000','<PNBO>http.tcp 1389977721-1389977749 172.19.71.97:26111-61.158.246.131:80 861 2813'
 
select id,日期=convert(varchar(10),date,111),时间=convert(varchar(10),date,108),
信息1=substring(data,1,charindex(' ',data)),
信息2=PARSENAME(
    replace(replace(replace(data,substring(data,1,charindex(' ',data)),''),'.','?'),' ','.')
    ,4),
信息3=replace(PARSENAME(
    replace(replace(replace(data,substring(data,1,charindex(' ',data)),''),'.','?'),' ','.')
    ,3),'?','.'),
信息4=replace(PARSENAME(
    replace(replace(replace(data,substring(data,1,charindex(' ',data)),''),'.','?'),' ','.')
    ,2),'?','.'),
信息4=replace(PARSENAME(
    replace(replace(replace(data,substring(data,1,charindex(' ',data)),''),'.','?'),' ','.')
    ,1),'?','.')
from @t


热点排行