插入数据类型为DateTime时为空值时,为什么SQL SERVER会自动加上"1900-01-01" 系统默认的吧,update tablename set 时间字段=''SQL SERVER会自动加上"1900-01-01"update tablename set 时间字段=null就不会了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 null值不会,但是其他会。在系统中,时间不是一个字符串,而是一个带小数的数字——整数部分代表从1900年1月1日以后的天数,小数部分为午夜之后的毫秒数(好像是)。 datetime/smalldatetime的存储格式是固定的.由日期+时间组成.如果只存储时间,它会自动加上1900-1-1除非你改用字符型字段来存储 datetime类型系统里面是共用8个字节来存储的,存储的数字类型。其中前4个字节用来存储日期1900-1-1之前/后的天数,其中后4个字节用来存储00:00后的毫秒数。如果是''的就是1900-1-1了。 我是这样做的:提交数据库还是让它存进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 存入之前先检查,如果是空的就设为NULL或者取的时候先检查,如果是1900-01-01,那么设为空,不过这样的话打印的时候会有问题的,所以还是建议用前面一种办法 sybase .db数据库不能正常打开,求高手解决 本人菜鸟。。请教个问题! 我安装了一个数码冲印程序,但在打开时说:不能连接数据库,是什么原因? 牢记!SQL Server数据库开发的二十一条军规(SQL收藏) 数据插入问题(在线等,急!) sql server 2005 在varbinary字段中插入文件,有时出错 请问如何选出两个表中重复和不重复的数据? 求一段SQL(刚才的需求有变化) 各位老大帮帮忙啊,在线等候 access数据库的一个查询和更新问题 记录集问题(VB)? 题目不好总结,还是进来看吧
其中后4个字节用来存储00:00后的毫秒数。如果是''的就是1900-1-1了。
提交数据库还是让它存进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
或者取的时候先检查,如果是1900-01-01,那么设为空,不过这样的话打印的时候会有问题的,所以还是建议用前面一种办法