SQL字符串';00000和x27;显示为';0';

SQL字符串';00000和x27;显示为';0';,sql,sql-server,tsql,Sql,Sql Server,Tsql,有人能解释为什么吗 CASE WHEN MARK = 'Y' THEN LEFT('00000', 5-LEN(DATEDIFF(MINUTE, START, FINISH))) + DATEDIFF(MINUTE, START, FINISH) ELSE '00000' END AS [Time] 当标记“Y”时,显示为单个0而不是00000,并显示35而不是00035(例如)我猜SQL正在将其转换为整数 像这样的代码selectcast('00000'作为

有人能解释为什么吗

CASE 
   WHEN MARK = 'Y' 
     THEN LEFT('00000', 5-LEN(DATEDIFF(MINUTE, START, FINISH))) + DATEDIFF(MINUTE, START, FINISH) 
     ELSE '00000' 
END AS [Time]

标记“Y”
时,显示为单个
0
而不是
00000
,并显示
35
而不是
00035
(例如)

我猜SQL正在将其转换为整数


像这样的代码selectcast('00000'作为varchar)返回您想要的结果(0000000035),但是selectcast('00000'作为int)返回您的结果(0,35等)

我猜SQL正在将其转换为整数


像这样的代码selectcast('00000'作为varchar)返回您想要的结果(0000000035),但是selectcast('00000'作为int)返回您的结果(0,35等)

我猜SQL正在将其转换为整数


像这样的代码selectcast('00000'作为varchar)返回您想要的结果(0000000035),但是selectcast('00000'作为int)返回您的结果(0,35等)

我猜SQL正在将其转换为整数


像这样的代码select cast('00000'作为varchar)返回您想要的结果(0000000035),但是select cast('00000'作为int)返回您的结果(0、35等)

我的理解是您正在使用MSSQL服务器。如果是,则任何变量或可空列的默认数据类型都是INT

我的理解是您正在使用MSSQL server。如果是,则任何变量或可空列的默认数据类型都是INT

我的理解是您正在使用MSSQL server。如果是,则任何变量或可空列的默认数据类型都是INT

我的理解是您正在使用MSSQL server。如果是,则任何变量或可空列的默认数据类型为INT

为什么不
RIGHT('00000'+日期差异(分钟,开始,结束),5)
?为什么不
RIGHT('00000'+日期差异(分钟,开始,结束),5)
?为什么不
RIGHT('00000'+日期差异(分钟,开始,结束),5)
?为什么不
RIGHT('00000'+日期差异(分钟,开始,结束),5)
CAST(右('00000'+DATEDIFF(MINUTE,ADTM,SDTM),5)作为VARCHAR)作为TEST
返回35个stillAh算出了它,不得不用CAST
CAST(右('00000'+DATEDIFF(MINUTE,ADTM,SDTM),5)作为VARCHAR封装DATEDIFF,作为TEST
返回35个stillAh算出了它,必须用cast
cast(右('00000'+Datediff(MINUTE,ADTM,SDTM),5)作为VARCHAR)封装Datediff,因为TEST
返回35个stillAh计算出来,必须用cast
cast(右('00000'+Datediff(MINUTE,ADTM,SDTM),5)作为VARCHAR封装Datediff,因为TEST
返回35个stillAh计算出来,必须用演员阵容封装Datediff
RIGHT('00000' + CAST(DATEDIFF(MINUTE,START,FINISH) AS VARCHAR(MAX)), 5)