嗨,我有一个日期字段,很少有记录为空。
我的日期字段名为LSF.EarliestFrom
当我使用此代码时
isnull(LSF.EarliestFrom,'') as LSFDateAppliesFrom
输出为1900-01-01。
任何帮助将不胜感激。
答案 0 :(得分:0)
正如评论中所述,date
字段上的空字符串将显示默认日期1900-01-01
如果您确实需要空白,则必须将列转换或转换为字符串:
ISNULL(CONVERT(varchar(10),LSF.EarliestFrom),'') as LSFDateAppliesFrom
我不推荐这个,除非它纯粹用于显示目的。使用存储为字符串的日期是一件好事。
答案 1 :(得分:0)
转换是这里的事情,你试图在同一列中显示 DateTime 和 Varchar
在这种情况下,如果要显示日期和空白(非空),则必须仅显示Varchar
您可以使用此CONCAT函数将 Date 或任何其他数据类型解析为 Varchar
DECLARE @date DATE
SELECT CONCAT(@date,'')
格式为
的CONCATSELECT CONCAT(FORMAT(@date,'MM/dd/yyyy'),'')
答案 2 :(得分:0)
如果您想要黑色代替NULL
,这将有效DECLARE @T TABLE (ID INT, Dates DATETIME)
INSERT INTO @T VALUES
(1,GETDATE()),
(2,GETDATE()),
(3,NULL),
(4,GETDATE()),
(5,GETDATE()),
(6,NULL),
(7,GETDATE());
SELECT
ID,
Dates,
ISNULL(CAST(CAST(Dates AS DATE) AS VARCHAR(10)),'')
FROM @T