nvarchar列在sql中查找上一个日期

时间:2012-10-20 07:08:34

标签: sql getdate

我有跟随表架构

declare @temp table  
 (
   id int identity(1,1) not null,
   nod nvarchar(50) 
 )

其中nod列包含以下数据

insert into @temp select 'N/A'
 insert into @temp select 'N/A'
 insert into @temp select '5'
 insert into @temp select 'N/A'
 insert into @temp select '7'
 insert into @temp select 'N/A'
 insert into @temp select '31'
 insert into @temp select '15'

我想要那个选择的遗产,请根据以下基础给我结果

如果nod值为'N/A',则应显示'N/A'

或者如果有任何数值如5,15,31那么它应该显示getdate()-nod date日期列

我已尝试过关注但未能减去日期,并且在该nvarchar列中的'N/A'时代表'N/A'

 select  DATEADD(dd,case nod when 'N/A' then 0 else nod end,GETDATE()) from @temp

sql fiddle is here

1 个答案:

答案 0 :(得分:1)

以下查询将返回VARCHAR(50)列,其中包含“N / A”或now - nod日期为varchar。

SELECT
     CASE nod
         WHEN 'N/A' THEN 'N/A'
         ELSE CONVERT(VARCHAR(50), 
                      DATEADD(dd, 
                              -1 * CONVERT(INT, nod), 
                              GETDATE()
                             )
                     ) 
     END
FROM @temp