Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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日期时间或字符串_Sql_Sql Server_Type Conversion - Fatal编程技术网

SQL日期时间或字符串

SQL日期时间或字符串,sql,sql-server,type-conversion,Sql,Sql Server,Type Conversion,我在TVF中有以下行: CASE WHEN MIN(ISNULL(EersteStart,GETDATE())) = GETDATE() then 'InOverleg' else MIN(ISNULL(EersteStart,GETDATE())) end as EersteStartDatum 除了这似乎有点低效之外,它仍然不起作用,因为 它会生成以下错误: Conversion failed when converting date and/or time from charact

我在TVF中有以下行:

CASE WHEN MIN(ISNULL(EersteStart,GETDATE())) = GETDATE() 
then 'InOverleg' 
else  MIN(ISNULL(EersteStart,GETDATE())) end as EersteStartDatum
除了这似乎有点低效之外,它仍然不起作用,因为 它会生成以下错误:

Conversion failed when converting date and/or time from character string.

我理解错误,但如何调整查询以提供所需的功能?(当基础查询为每行的所有EersteStartDatum字段返回null时,返回字符串“InOverleg”,或当存在EersteStartDatum不为null的行时,显示最小日期)

什么让人困惑
case
是一个表达式,需要返回一种类型。SQL Server倾向于转换为更严格的类型。在这种
情况下
,更严格的时间是
日期时间
<代码>'InOverLeg'不转换

您可以将日期转换为字符串:

(CASE WHEN MIN(COALESCE(EersteStart, GETDATE())) = GETDATE() 
      THEN 'InOverleg' 
      ELSE  CONVERT(VARCHAR(10), MIN(COALESCE(EersteStart, GETDATE())), 121) -- or whatever format you like
 END) as EersteStartDatum

什么让人困惑
case
是一个表达式,需要返回一种类型。SQL Server倾向于转换为更严格的类型。在这种
情况下
,更严格的时间是
日期时间
<代码>'InOverLeg'不转换

您可以将日期转换为字符串:

(CASE WHEN MIN(COALESCE(EersteStart, GETDATE())) = GETDATE() 
      THEN 'InOverleg' 
      ELSE  CONVERT(VARCHAR(10), MIN(COALESCE(EersteStart, GETDATE())), 121) -- or whatever format you like
 END) as EersteStartDatum

对所有返回数据(然后是结果,然后是结果)使用
CAST(数据返回为varchar(我的所需字符串长度))
。现在,在任何情况下都将返回字符串

对所有返回数据(然后是result和else result)使用
CAST(数据返回为varchar(我的所需字符串长度))
。现在,在任何情况下都将返回字符串

唯一的方法是以字符串形式返回日期您正在使用哪个?@a_horse_和\u no_nam Im使用SQL server唯一的方法是以字符串形式返回日期您正在使用哪个?@a_horse_和\u no_nam Im使用SQL server