我有一个表格,其中日期和时间戳记录在一起,我想只显示10个字符输出中的日期。另外,我想在01/01/1800字段中将某些日期作为空白返回。
目前的表格格式为2013-06-28 00:00:00:000 我只想要约会。我正在使用RTRIM功能,但它一直出错。
提前感谢你
答案 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'没有时间部分。对于默认的极值,这似乎是合理的。