插入数据类型为DateTime时为空值时,为什么SQL SERVER会自动加上"1900-01-01"

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

 

======================================

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

 

======================================

datetime/smalldatetime的存储格式是固定的.

由日期+时间组成.

如果只存储时间,它会自动加上1900-1-1

除非你改用字符型字段来存储

========================================

datetime类型系统里面是共用8个字节来存储的,存储的数字类型。

其中前4个字节用来存储日期1900-1-1之前/后的天数,
其中后4个字节用来存储00:00后的毫秒数。

如果是 ' '的就是1900-1-1了。

==========================================

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值