最近,我与ISNUMERIC工作在SQL Server中,当我遇到一个问题,这导致了发现这个代码片断.
SELECT ISNUMERIC('.')
Run Code Online (Sandbox Code Playgroud)
这返回1,如同在true中一样,这不应该返回0,如false吗?
Mar*_*ith 18
SELECT CAST('.' AS MONEY)
Run Code Online (Sandbox Code Playgroud)
回报0.00
(虽然剧组的失败int
和float
)
ISNUMERIC
只检查该值是否可以转换为任何一种通常无用的数值数据类型.通常你想知道它是否可以转换为特定类型.
此外,它似乎甚至没有正确地完成所有可能的输入任务..尽管成功投入了int和money,但仍会ISNUMERIC(' ')
返回0
.相反地ISNUMERIC(N'?')
返回,1
但没有成功地投射到我尝试的任何东西.
一些有用的辅助函数是IsNumeric,IsInt,IsNumber.
SQL Server 2012引入TRY_PARSE
并TRY_CONVERT
对此有很大帮助.
归档时间: |
|
查看次数: |
5211 次 |
最近记录: |