系统默认的吧,
update tablename set 时间字段=''
SQL SERVER会自动加上"1900-01-01"
update tablename set 时间字段=null
就不会了

解决方案 »

  1.   

    null值不会,但是其他会。在系统中,时间不是一个字符串,而是一个带小数的数字——整数部分代表从1900年1月1日以后的天数,小数部分为午夜之后的毫秒数(好像是)。
      

  2.   

    datetime/smalldatetime的存储格式是固定的.由日期+时间组成.如果只存储时间,它会自动加上1900-1-1除非你改用字符型字段来存储
      

  3.   

    datetime类型系统里面是共用8个字节来存储的,存储的数字类型。其中前4个字节用来存储日期1900-1-1之前/后的天数,
    其中后4个字节用来存储00:00后的毫秒数。如果是''的就是1900-1-1了。
      

  4.   

    我是这样做的:
    提交数据库还是让它存进1900-1-1
    但在取值的时候做一下处理:
    select jobTime = case when jobTime = '1900-1-1' then '' when jobTime <> '1900-1-1' then substring(convert(varchar,jobTime,120),1,10) end from table
      

  5.   

    存入之前先检查,如果是空的就设为NULL
    或者取的时候先检查,如果是1900-01-01,那么设为空,不过这样的话打印的时候会有问题的,所以还是建议用前面一种办法