当前位置: 代码迷 >> Sql Server >> 有关varchar函数向date函数转换的有关问题
  详细解决方案

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

热度:110   发布时间:2016-04-27 11:03:24.0
有关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
……
  相关解决方案