【发布时间】:2013-11-24 16:27:43
【问题描述】:
我有一个表,其中包含“日期时间”类型的“NULL”值。现在我必须将它们转换为空字符串,但是当我使用转换函数时
ISNULL( [Accrued Out of Default] ,'' )
这里的默认值是日期时间类型,它的作用是将 null 更改为 '1900-01-01 00:00:00.000' 而不是空
然后我尝试将它们转换为 varchar 并应用相同
ISNULL(CONVERT(varchar(50), [Amort Into Default] ),'')
现在我可以转换为空字符串,但现在这些日期时间已转换为我在日期时间中需要的字符串 所以我尝试 CAST、CONVERT 但它们都不起作用。
CONVERT(Datetime,'ISNULL(CONVERT(varchar(50), [Amort Into Default] ),'')',120)
这会出错。
有没有办法解决这个问题。
> **Solution Hi someone answered this to do as.
> ISNULL(CONVERT(varchar(50), [Amort Into Default] ,120),'') and it works I dont know why .
**
【问题讨论】:
-
在结果集中,一个字段的所有值都必须是相同的数据类型。因此,您不能将某些值输出为 VARCHAR,而将其他值输出为 DATETIME。您应该在客户端解析它或将所有值输出为 VARCHAR 类型。
-
datetime值无法存储字符串。无法同时满足 a) 结果表达式的类型为datetime类型,以及 b) 行包含的内容不是有效的日期时间值或 NULL。
标签: sql-server sql-server-2008 datetime