Sql server 如果日期包含',则返回空字符串;1900年'年;
我有一个日期字段,它的日期值格式为“dd-MM-yyyy”。如果值包含“1900”或年份为1900,我需要在select中返回空字符串 我尝试了case语句,它工作正常,但我需要返回“”而不是Null。如果我将NULL替换为“”,则得到的是正常值而不是“”Sql server 如果日期包含',则返回空字符串;1900年'年;,sql-server,Sql Server,我有一个日期字段,它的日期值格式为“dd-MM-yyyy”。如果值包含“1900”或年份为1900,我需要在select中返回空字符串 我尝试了case语句,它工作正常,但我需要返回“”而不是Null。如果我将NULL替换为“”,则得到的是正常值而不是“” 如果列是日期,并且您希望返回格式化的值,则将两侧转换为相关类型,例如 CASE WHEN YEAR(StartDate) = 1900 THEN '' ELSE CONVERT(VARCHAR, StartDate, 105
如果列是日期,并且您希望返回格式化的值,则将两侧转换为相关类型,例如
CASE
WHEN YEAR(StartDate) = 1900 THEN ''
ELSE CONVERT(VARCHAR, StartDate, 105) -- Adjust datetime format to suit -- see also http://msdn.microsoft.com/en-us/library/ms187928.aspx
END AS SD
如果列是日期,并且您希望返回格式化的值,则将两侧转换为相关类型,例如
CASE
WHEN YEAR(StartDate) = 1900 THEN ''
ELSE CONVERT(VARCHAR, StartDate, 105) -- Adjust datetime format to suit -- see also http://msdn.microsoft.com/en-us/library/ms187928.aspx
END AS SD
您可以使用
YEAR
而不是字符串方法:
SELECT CASE WHEN YEAR(StartDate) = 1900
THEN ''
ELSE CONVERT(varchar(10),StartDate,105)
END AS SD
FROM dbo.TableName
您可以找到
CONVERT
的格式,我在dd-MM-yyyy
中使用了105
(意大利语)您可以使用YEAR
而不是字符串方法:
SELECT CASE WHEN YEAR(StartDate) = 1900
THEN ''
ELSE CONVERT(varchar(10),StartDate,105)
END AS SD
FROM dbo.TableName
您可以找到
CONVERT
的格式,我在dd-MM-yyyy
中使用了105
(意大利语)“日期字段”表示DateTime
/varchar
列?“”是DateTime数据类型的无效值,仅支持null或有效日期。“”是字符数据。您必须将结果类型强制转换为varchar以支持所需的结果“日期字段”表示DateTime
/date
或varchar
列?“”是DateTime数据类型的无效值,仅支持null或有效日期。“”是字符数据。您必须将结果类型强制转换为varchar以支持所需的结果我需要返回空字符串而不是'NULL',我忽略了这一点。在这种情况下,Rowland的答案就是您正在寻找的答案,我需要返回空字符串而不是'NULL',我错过了。在这种情况下,罗兰的答案是你要找的+1-我相信datetime样式105产生的是dd-MM-yyyy
格式OP要找的+1-我相信datetime样式105产生的是dd-MM-yyyy
格式OP要找的是Damn,你用转换赢了我:-)该死,你用转换赢了我:-)