Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如果日期包含',则返回空字符串;1900年'年;_Sql Server - Fatal编程技术网

Sql server 如果日期包含',则返回空字符串;1900年'年;

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

我有一个日期字段,它的日期值格式为“dd-MM-yyyy”。如果值包含“1900”或年份为1900,我需要在select中返回空字符串

我尝试了case语句,它工作正常,但我需要返回“”而不是Null。如果我将NULL替换为“”,则得到的是正常值而不是“”


如果列是日期,并且您希望返回格式化的值,则将两侧转换为相关类型,例如

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,你用转换赢了我:-)该死,你用转换赢了我:-)