日期:2014-05-17  浏览次数:20443 次

请问,这个数据库字段数据类型要怎么设?
现在数据库中有一列,名称为ReturnDate,这列存储的是退回日期,有时需要通过时间区间查询数据,但是此列有大多数的空值,如果设置为datetime的时候,此列在更新的时候就不能为空,如果设置为varchar类型,就不能按时间区间查询,请问各位,我这个字段要设置成什么类型呢?
------解决方案--------------------
最好设为datetime,如果没数据的时候就给默认值,可以考虑一个固定的日期,如1900-01-01或者2999-12-31。甚至使用getdate()来产生。varchar的话要控制好类型格式不好处理。
------解决方案--------------------
设置成NVARCHAR()啊,datename()返回nvarchar()类型 
------解决方案--------------------
最好是日期类型  这样可以直接比较  假如是字符串  就需要转换了  搞不好原有的索引都利用不上  从效率上也就不会很高了
------解决方案--------------------
引用:
还有什么好方法吗?


建议还是设计成varchar()类型吧
------解决方案--------------------
引用:
引用:引用:还有什么好方法吗?

建议还是设计成varchar()类型吧
为什么呢??


用varchar()类型  你规范一下这个字段存储不为空数据的格式  后期查询处理还是很好办的
------解决方案--------------------
不能为空值,就插入NULL呗。
还有一个问题是,为啥更新的时候不能为空?这个字段别更新,或者插入NULL就OK啊。

时间字段为空值(""),没有什么意义。
------解决方案--------------------
引用:
最好设为datetime,如果没数据的时候就给默认值,可以考虑一个固定的日期,如1900-01-01或者2999-12-31。甚至使用getdate()来产生。varchar的话要控制好类型格式不好处理。


+1