SQL SERVER 2008---NULLIF

本文介绍了一个在数据库操作中常见的问题:当用户未选择日期时,默认插入1900-01-01而非NULL值,导致数据错误显示。通过使用NULLIF函数,可以有效解决这一问题,确保数据库中未选择的日期字段为NULL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做项目时遇到一个问题:画面上有选择日期的地方,当然这个日期不是必填项,可以不选择,但是如果不选择的话就会以string.empty的形式向数据库插入/更新数据,这时数据库中存在的其实是1900-01-01,而不是我想要的空字符串;再检索画面时,就直接将1900-01-01显示出来了。

解决方法:

使用NULLIF函数,在插入/更新语句中使用

 

select nullif('a','')      //结果:a

select nullif('a','b')    //结果:a

select nullif(null,'b')  //结果:NULLIF 的第一个参数的类型不能是 NULL 常量,因为第一个参数的类型必须是已知的

select nullif('','b')      //结果:空字符串

select nullif('','')        //结果:NULL

利用上面蓝色字体就可以向数据库中插入NULL,而不会插入1900-01-01了

例:

insert into tMyTable
    (dDate)
values
    (nullif('',''))

------结果------

      iAuto_id    dDate

           1          NULL

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值