Jua*_*lez 16 sql-server sql-server-2012 datetime
当 DOB 字段为空时,以下代码返回 1900-01-01。我想要(并期望)它返回一个空字符串(''),但事实并非如此。我应该如何继续获得我想要的结果?
isnull(convert(date,DOB,1),'')
Run Code Online (Sandbox Code Playgroud)
Low*_*n M 24
您无法获得空字符串,因为您DATE
要从返回值类型ISNULL
。
根据文档,ISNULL
返回与 check_expression 相同的类型。如果提供文字 NULL 作为 check_expression,则返回 replacement_value 的数据类型。如果提供文字 NULL 作为 check_expression 并且没有提供 replacement_value,则返回一个 int。
如果您正在检查该值是否为NULL
,则无需将其转换为日期,除非您想返回日期值(您似乎没有这样做)。
相反,使用:
SELECT ISNULL( DOB , '')
Run Code Online (Sandbox Code Playgroud)
哪个会返回
''
Run Code Online (Sandbox Code Playgroud)
如果值为NULL
.
甲NULL
日期是NULL
(没有值)。另一方面,空字符串的计算结果为0
,它在 SQL Server 中隐含地是一个整数,表示自 以来的天数1900-01-01
。
归档时间: |
|
查看次数: |
148569 次 |
最近记录: |