请问,这个数据库字段数据类型要怎么设?

yinsuxia 2012-11-21 01:22:48
现在数据库中有一列,名称为ReturnDate,这列存储的是退回日期,有时需要通过时间区间查询数据,但是此列有大多数的空值,如果设置为datetime的时候,此列在更新的时候就不能为空,如果设置为varchar类型,就不能按时间区间查询,请问各位,我这个字段要设置成什么类型呢?
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小孩快跑 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
最好设为datetime,如果没数据的时候就给默认值,可以考虑一个固定的日期,如1900-01-01或者2999-12-31。甚至使用getdate()来产生。varchar的话要控制好类型格式不好处理。
+1
shoppo0505 2012-11-21
  • 打赏
  • 举报
回复
不能为空值,就插入NULL呗。 还有一个问题是,为啥更新的时候不能为空?这个字段别更新,或者插入NULL就OK啊。 时间字段为空值(""),没有什么意义。
yinsuxia 2012-11-21
  • 打赏
  • 举报
回复
引用 7 楼 TravyLee 的回复:
引用 6 楼 yinsuxia 的回复:引用 5 楼 TravyLee 的回复:引用 4 楼 yinsuxia 的回复:还有什么好方法吗? 建议还是设计成varchar()类型吧 为什么呢?? 用varchar()类型 你规范一下这个字段存储不为空数据的格式 后期查询处理还是很好办的
但是这个字段本来就是可以为空的。。。
  • 打赏
  • 举报
回复
引用 6 楼 yinsuxia 的回复:
引用 5 楼 TravyLee 的回复:引用 4 楼 yinsuxia 的回复:还有什么好方法吗? 建议还是设计成varchar()类型吧 为什么呢??
用varchar()类型 你规范一下这个字段存储不为空数据的格式 后期查询处理还是很好办的
yinsuxia 2012-11-21
  • 打赏
  • 举报
回复
引用 5 楼 TravyLee 的回复:
引用 4 楼 yinsuxia 的回复:还有什么好方法吗? 建议还是设计成varchar()类型吧
为什么呢??
  • 打赏
  • 举报
回复
引用 4 楼 yinsuxia 的回复:
还有什么好方法吗?
建议还是设计成varchar()类型吧
yinsuxia 2012-11-21
  • 打赏
  • 举报
回复
还有什么好方法吗?
  • 打赏
  • 举报
回复
最好是日期类型 这样可以直接比较 假如是字符串 就需要转换了 搞不好原有的索引都利用不上 从效率上也就不会很高了
维秀斯丢丢 2012-11-21
  • 打赏
  • 举报
回复
设置成NVARCHAR()啊,datename()返回nvarchar()类型
發糞塗牆 2012-11-21
  • 打赏
  • 举报
回复
最好设为datetime,如果没数据的时候就给默认值,可以考虑一个固定的日期,如1900-01-01或者2999-12-31。甚至使用getdate()来产生。varchar的话要控制好类型格式不好处理。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧