现在我需要把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 转成成功*/
------解决方案--------------------