关于convert函数

satanail 2010-06-30 10:48:04
小弟不才...请各位大虾们多多指教

set expire_date=conver(varchar(10),isnull(expire_date,''),120)

但是当表里的数据真为null值时候,返回来的却是datetime默认值1900-01-01我怎么才能改变这个,让其返回为空值?
...全文
130 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL_Hhy 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 satanail 的回复:]

引用 8 楼 lds1ove 的回复:
SQL code
select isnull(convert(varchar(10),case when isnull(expire_date,'')='' then null else expire_date end,120),'')

这个不行
[/Quote]
看12楼
satanail 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lds1ove 的回复:]
SQL code
select isnull(convert(varchar(10),case when isnull(expire_date,'')='' then null else expire_date end,120),'')
[/Quote]
这个不行
satanail 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 htl258 的回复:]
SQL code
set expire_date=convert(varchar(10),expire_date,120)
[/Quote]
引用 5 楼 spiritofdragon 的回复:
set expire_date=conver(varchar(10),expire_date,120)
不要isnull不就行了么?字段被更新成null


这样可以,但是返回的结果,如果字段为null,返回0
SQL_Hhy 2010-06-30
  • 打赏
  • 举报
回复
declare @date datetime 
select case when @date is null then '' else convert(varchar(10),@date,120) end
htl258_Tony 2010-06-30
  • 打赏
  • 举报
回复
 set expire_date=convert(varchar(10),expire_date,120)
SQL_Hhy 2010-06-30
  • 打赏
  • 举报
回复
用case when
claro 2010-06-30
  • 打赏
  • 举报
回复
呵呵 。
lds1ove 2010-06-30
  • 打赏
  • 举报
回复
         select isnull(convert(varchar(10),case when isnull(expire_date,'')='' then null else expire_date end,120),'')
Sharon_liu 2010-06-30
  • 打赏
  • 举报
回复
你把测试数据和想要的结果发上来看看,越说我越迷糊
satanail 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 spiritofdragon 的回复:]
set expire_date=conver(varchar(10),expire_date,120)
不要isnull不就行了么?字段被更新成null
[/Quote]
这样可以,但是返回的结果,如果字段为null,返回0
spiritofdragon 2010-06-30
  • 打赏
  • 举报
回复
set expire_date=conver(varchar(10),expire_date,120)
不要isnull不就行了么?字段被更新成null
Sharon_liu 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 satanail 的回复:]

引用 1 楼 sharon_liu 的回复:
ISNULL加到外边

SQL code
set expire_date=isnull(conver(varchar(10),expire_date,120),'')


放在外面也不行~
[/Quote]
你的意思是如果expire_date是默认值就返回空字符串吧?
set expire_date=CASE conver(varchar(10),isnull(expire_date,''),120) WHEN '1900-01-01' THEN '' ELSE set expire_date=conver(varchar(10),isnull(expire_date,''),120) END
satanail 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sharon_liu 的回复:]
ISNULL加到外边

SQL code
set expire_date=isnull(conver(varchar(10),expire_date,120),'')
[/Quote]

放在外面也不行~
lds1ove 2010-06-30
  • 打赏
  • 举报
回复
select isnull(convert(varchar(10),expire_date,120),'')
Sharon_liu 2010-06-30
  • 打赏
  • 举报
回复
ISNULL加到外边
 set expire_date=isnull(conver(varchar(10),expire_date,120),'')

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧