Ms SQL Server中"出生日期"字段设置为什么类型(varchar 还是 datetime)好?
C# 编程对于实际录入时有时填写出生日期,有时空着出生日期
在mssql 中设定出生日期varchar 还是 datetime更好些.
设定出生日期 datetime ,当用户不填写出生日期如何处理好一些(不填就得为空)?
设定出生日期 varchar , 按出生日期排序,是否符合datetime的大小排列方式?
请帮着分析下两种数据类型作为出生日期的优缺点? 最好能给出具体的C#存取代码.
------解决方案--------------------varchar
原因:字符串时间可以排序,不用来回转换格式。
------解决方案--------------------datetime...
如果有这个字段查询。。。比如时间段查询(要查1980-1-1日到1990-1-1出生的人)。。用varchar会给你添不少乱
如果时间有时可以不填,你只需给定个默认值而已,比如没有输入生日的,生日字段都为"1900-01-01"
------解决方案--------------------当然是datetime
varchar明显的没有格式,一个没有格式的输入必定会导致输出错误
------解决方案--------------------
------解决方案--------------------肯定是datetime了。就是用来存数日期的。
------解决方案--------------------是个日期当然就优先用DateTime。日期格式其实是很灵活的,用char/varchar读写指不定会出什么乱子。
------解决方案--------------------
------解决方案--------------------不好意思,DATEtime,点错了引用
肯定是DateTime了
------解决方案--------------------- - ! 我是新手。 我用的是 int 储存时间戳
------解决方案--------------------汗,我以前设计数据库时,时间字段都是用的Varchar
感觉挺好用的
格式方面 不让用户自己输入日期,从DateTimePicker之类的控件上选择日期
如果是用户输入可以先用正则判断合法性
按时间段查询 只要用大于小于号就可以
默认值可以设置吧
------解决方案--------------------public DateTime? BirthDate{get; set;}
用可空类型
------解决方案--------------------数据库中还是 datetime 类型, datetime null
------解决方案--------------------符串时间可以排序,不用来回转换格式。
------解决方案--------------------
------解决方案--------------------各有各的缺点,datetime在null的情况下,在页面显示什么“0001-00-00”之类的字符串 还得判断,在c#里如果为空的时候不能直接转换成datetime类型,要容错,要判断,如果你要转换成某个格式的话,还是得转换字符串类型....而varchar就是转换问题,相比我比较喜欢用varchar
------解决方案--------------------datetime?
------解决方案--------------------
------解决方案--------------------如果为了查询速度快的话,你最好使用日期Ticks.
数据库对应的类型是bigint.
------解决方案--------------------INT
------解决方案--------------------datetime
------解决方案--------------------