转换日期格式以消除时间戳
converting date format to eliminate time stamp
我有一个 table,其中日期和时间戳记录在一起,我只想在 10 个字符的输出中显示日期。我还想 return 将字段中 01/01/1800 的一些日期设为空白。
当前 table 格式为 2013-06-28 00:00:00:000
我只想要日期。我正在使用 RTRIM 函数,但它一直出错。
提前致谢
试试这个:
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呃
你可以这样做:
select (case when datecol > '1800-01-01' then convert(varchar(10), datecol, 121) end)
这会将值转换为 YYYY-MM-DD 形式的字符串。
这对 "blank" 使用 NULL
。如果你想要一个空字符串:
select (case when datecol > '1800-01-01'
then convert(varchar(10), datecol, 121)
else ''
end)
这还假设带有“1800-01-01”的值没有时间部分。对于默认的极值来说,这似乎是合理的。
我有一个 table,其中日期和时间戳记录在一起,我只想在 10 个字符的输出中显示日期。我还想 return 将字段中 01/01/1800 的一些日期设为空白。
当前 table 格式为 2013-06-28 00:00:00:000 我只想要日期。我正在使用 RTRIM 函数,但它一直出错。
提前致谢
试试这个:
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呃
你可以这样做:
select (case when datecol > '1800-01-01' then convert(varchar(10), datecol, 121) end)
这会将值转换为 YYYY-MM-DD 形式的字符串。
这对 "blank" 使用 NULL
。如果你想要一个空字符串:
select (case when datecol > '1800-01-01'
then convert(varchar(10), datecol, 121)
else ''
end)
这还假设带有“1800-01-01”的值没有时间部分。对于默认的极值来说,这似乎是合理的。