如何转换日期,但如果Null则不返回任何内容?

时间:2016-06-28 15:02:25

标签: sql sql-server sql-server-2008

我有一个日期时间字段存储在数据库中,如下所示:2016-06-30 00:00:00.000

我被要求将该格式转换为dd / mm / yyyy

我可以这样做 Convert(varchar,PRICE_TAB.F137,103) as 'SalesPriceStartDateGood',

这个列虽然包含NULLS,但它包含NULLS,我想什么都不返回。这将导出为CSV,因此我希望它在文件中找到该位置。

如何编写查询来说明转换为此格式,除非为null,那么什么都不给我?

2 个答案:

答案 0 :(得分:2)

我在没有合并的情况下尝试了它,结果看起来像你想要的那样:

declare @test1 datetime = getdate()
declare @test2 datetime = null

select convert(varchar, @test1, 103) as test1, 
       convert(varchar, @test2, 103) as test2

这会返回
28/06/2016 null

如果你需要一个空字符串而不是这样做

select convert(varchar, @test1, 103) as test1, 
       isnull(convert(varchar, @test2, 103), '') as test2

这会返回
2016年6月28日''

你的桌子就是这样:

isnull(Convert(varchar,PRICE_TAB.F137,103), '') as SalesPriceStartDateGood'  

答案 1 :(得分:-1)

其中一个选项......

SELECT CASE
           WHEN PRICE_TAB.F137 IS NOT NULL
           THEN CONVERT( VARCHAR, '2016-06-30')
       END AS 'SalesPriceStartDateGood';