SQL字符串' 00000'显示为' 0'

时间:2014-05-16 04:49:53

标签: 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]

0时显示为单00000而不是Mark <> 'Y',并显示35而不是00035(作为示例)

3 个答案:

答案 0 :(得分:3)

我猜SQL会将它转换为整数。

select cast('00000' as varchar)之类的代码会根据您的意愿返回(00000,00035),但select cast('00000' as int)会返回您的结果(0,35等)

答案 1 :(得分:0)

RIGHT('00000' + CAST(DATEDIFF(MINUTE,START,FINISH) AS VARCHAR(MAX)), 5)

答案 2 :(得分:0)

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