代码之家  ›  专栏  ›  技术社区  ›  gene

当日期字段为空时,为什么SQL查询返回“01/01/1900”而不是空字符串?

  •  0
  • gene  · 技术社区  · 7 年前

    我从中选择的表有一个值 NULL 在一个 CloseDate 无效的 ,返回一个空字符串。然而,它又回来了 01/01/1900

    declare @value varchar(50) = '2346677888'
        Set @Value=@Value +'%'
    
        select CONVERT(varchar,ISNULL(m.CloseDate,''),101) as CloseDate from( 
        SELECT m.EdsClosedDate AS CloseDate
        FROM [dbo].[tblMyTable] m                   
        WHERE MID like @value) m
    

    1 回复  |  直到 7 年前
        1
  •  1
  •   Gordon Linoff    7 年前

    这句话:

    select CONVERT(varchar, ISNULL(m.CloseDate, ''), 101) as CloseDate
    

    更清楚地写为:

    select CONVERT(varchar(255), COALESCE(m.CloseDate, 0), 101) as CloseDate
    

    之后 将值转换为字符串:

    select COALESCE(CONVERT(varchar(255), m.CloseDate, 101), '') as CloseDate
    
    推荐文章