我UPDATE数据库里的一个字段为空(datetme型)
然后系统默认为1900-01-01 00:00:00.000
我想让他显示是空
请问该怎么实现

解决方案 »

  1.   

    http://topic.csdn.net/u/20111115/01/f1cd290c-fecd-427a-b16f-526f3bbf26d5.html?seed=2096250802&r=76492138#r_76492138
      

  2.   

    把它的默认值去掉,在插入记录但不包含此列数据时,它就会为空.
    如果想让已有此类数据的行该列为空,可以用
    update tb set dt=null where dt='1900-01-01 00:00:00.000'
      

  3.   

    默认值去掉就应该为空了。修改语句是update tb set dt=null where dt='1900-01-01 00:00:00.000'
      

  4.   


    if object_id('tb','U') is not null
       drop table tb
    go
    create table tb
    (
     id int primary key,
     name varchar(10),
     sr datetime
    )
    go
    insert into tb
    select 1,'张三','' union all  --空字符串就是'1900-01-01 00:00:00.000'
    select 2,'李四',null          --设置为null,就不显示'1900-01-01 00:00:00.000'了select * from tb
    /*
    id          name       sr
    ----------- ---------- -----------------------
    1           张三         1900-01-01 00:00:00.000
    2           李四         NULL(2 行受影响)
    */
      

  5.   

    有些前端语言,对于datetime字段,取出null就自动变成1900-01-01,楼主是不是这种情况?
    也就是说数据库已经是null的了,只是前端显示问题。
      

  6.   

    时间类型字段aa
    不能这样赋空set aa=''  这样的话系统会自动设置会默认值
    应该这样赋值set aa=null
    判断的时候也不要判断='',应该用isnull()或者 xx is null