Sql Server中Convert函数小结

本文介绍如何使用SQL转换函数处理不同数据类型并生成与日期和用户ID相关的自增问题编号,实现数据库中问题编号的高效管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用法:
1.varchar类型----->int
比如数据库表中有id(int)和name(varchar(10))列,想要输出id+name的值:

select  *, convert(varchar,id)+name from Table_3;

或者select  *, convert(varchar(10),id)+name from Table_3;

2.CONVERT(varchar(8),GETDATE(),112)表示20120808字符输出
实例:数据库表中添加一个增长的问题编号,根据不同的执法者生成和时间有关的当天的一个自增长的问题编号。
问题编号:根据时间+userid+id===2012080200101

--设置当天的第一条数据ID值2012080800001
set @temp_pid=CONVERT(varchar(8),getdate(),112)+@in_police+'01';
--获取该执法者的上报问题的总数
select @temp3=COUNT(*) from Problem where police=@in_police;
if(@temp3<1)
 set @temp1=0;
else
begin 
--获取该执法者的最近一条上报问题的问题编号
select @temp1= max(pid)  from Problem  where police=@in_police ;
end
--问题编号++
if(@temp_pid>@temp1)
 set @pid=@temp_pid;
else
 begin
 set @pid=SUBSTRING(@temp1,12,2)+1;
 if(@pid/10=0)
 set @pid=CONVERT(varchar(8),GETDATE(),112)+@in_police+'0'+@pid;
 else
 set @pid=CONVERT(varchar(8),GETDATE(),112)+@in_police+@pid;
 end

begin try 
insert into Problem values (@pid,@in_maintype,@in_subtype,@in_carid,@in_litigant,@in_driver,@in_coordinate,
@in_problemdesc,@in_fare,@in_faredesc,@in_police,@in_status,@in_datetime);
set @out_parameter=0;
end try
begin catch
set @out_parameter=2;
end catch

说明:
该存储过程旨在插入一条新的问题数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值