读书人

有关varchar函数向date函数转换的有关

发布时间: 2012-09-27 11:11:17 作者: rapoo

有关varchar函数向date函数转换的问题
现在我需要把varchar函数转换为date函数,这个用cast或convert都可以实现,
但是如果输入像‘12345678’这样明显不能转换date函数时,则不转换,并提示预设的信息1;
如果输入像‘18760216’这样可以转换date函数时,则转换,并提示预设的信息2。
这个功能应该要如何实现,希望各位高手指教啊!最好把实现该功能的sql代码附上


[解决办法]
select isdate('18760216'),isdate('12345678')
/*
----------- -----------
1 0

(所影响的行数为 1 行)

1表示可以转换成时间。0表示不可以。
[解决办法]

SQL code
--> 测试数据: @Tdeclare @T table (col varchar(10))insert into @Tselect 12345678 union allselect 18760216--预设信息1declare @s1 varchar(20) set @s1='转成失败'--预设信息2declare @s2 varchar(20) set @s2='转成成功'--查询select case when isdate(col)=1      then convert(varchar(10),cast(col as datetime),120)     else col end as col,case when isdate(col)=1      then @s2 else @s1 end as MessageInfofrom @T/*col        MessageInfo---------- --------------------12345678   转成失败1876-02-16 转成成功*/
[解决办法]
探讨

引用:

SQL code

--> 测试数据: @T
declare @T table (col varchar(10))
insert into @T
select 12345678 union all
select 18760216

--预设信息1
declare @s1 varchar(20) set @s1='转成失败'

--预设信息2
……

读书人网 >SQL Server

热点推荐