sql-server – 为什么0等于空字符串?
我必要一些辅佐来找到为什么以下T-SQL语句返回1(true): SELECT IIF( 0 = '',1,0) 我猜有人改变了ANSI选项,譬喻SET ANSI_NULLS或导致该举动的其他对象. 我的题目是我正在插手一些值,在最后一行中我有值由0和”值毗连,这是不正确的. 办理要领这只是记录在案的举动.我以为没有人搞砸这些配置.请参阅MSDN上的data type precedence.
如注释中所述,空字符串在任何数字范例中转换为0,在转换为日期时转换为1900-01-01 00:00:00.000. 编辑:我以为您的真正题目是您的计划是必需插手差异数据范例的字段.办理这个题目的独一要领是对join子句举办转换,这会侵害查询机能.首要题目也许在于架构计划 编辑: 这段代码: SELECT CONVERT(int,'') SELECT CONVERT(float,'') SELECT CONVERT(date,'') SELECT CONVERT(datetime,'') 天生此输出: 0 0 1900-01-01 1900-01-01 00:00:00.000 那么你可以祈望这种举动在其他前面的数据范例之间是同等的,而且祈望将0转换为日期会发生沟通的恣意值,但究竟并非云云. SELECT CONVERT(date,0) 发生
由于它不是supported conversion 而 SELECT CONVERT(datetime,0) 返回
以是,是的,这是稀疏和随意的,但现实上是记录息争释的. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |