转换日期格式以消除时间戳

时间:2015-02-05 15:28:02

标签: sql sql-server-2008

我有一个表格,其中日期和时间戳记录在一起,我想只显示10个字符输出中的日期。另外,我想在01/01/1800字段中将某些日期作为空白返回。

目前的表格格式为2013-06-28 00:00:00:000 我只想要约会。我正在使用RTRIM功能,但它一直出错。

提前感谢你

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT CASE CONVERT(DATE, @MyValue) WHEN '01/01/1800' THEN NULL ELSE CONVERT(DATE, @MyValue) END

或者如果您愿意:

DECLARE @DateOnlyValue DATE
SET @DateOnlyValue = CONVERT(DATE, @MyValue)
SELECT CASE @DateOnlyValue WHEN '01/01/1800' THEN NULL ELSE @DateOnlyValue END

后者只是DRY呃。

答案 1 :(得分:0)

你可以这样做:

select (case when datecol > '1800-01-01' then convert(varchar(10), datecol, 121) end)

这会将值转换为YYYY-MM-DD形式的字符串。

这使用NULL表示"空白"。如果你想要一个空字符串:

select (case when datecol > '1800-01-01'
             then convert(varchar(10), datecol, 121)
             else ''
         end)

这也假设使用' 1800-01-01'没有时间部分。对于默认的极值,这似乎是合理的。