读书人

Ms SQL Server中quot;出生日期quot;字段设立为

发布时间: 2012-07-29 15:26:14 作者: rapoo

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...

如果有这个字段查询。。。比如时间段查询(要查1980-1-1日到1990-1-1出生的人)。。用varchar会给你添不少乱

如果时间有时可以不填,你只需给定个默认值而已,比如没有输入生日的,生日字段都为"1900-01-01"

[解决办法]
肯定是datetime了。就是用来存数日期的。
[解决办法]
是个日期当然就优先用DateTime。日期格式其实是很灵活的,用char/varchar读写指不定会出什么乱子。
[解决办法]
探讨

varchar

原因:字符串时间可以排序,不用来回转换格式。

[解决办法]
不好意思,DATEtime,点错了引用
肯定是DateTime了
[解决办法]
- - ! 我是新手。 我用的是 int 储存时间戳
[解决办法]
汗,我以前设计数据库时,时间字段都是用的Varchar
感觉挺好用的
格式方面 不让用户自己输入日期,从DateTimePicker之类的控件上选择日期
如果是用户输入可以先用正则判断合法性
按时间段查询 只要用大于小于号就可以
默认值可以设置吧
[解决办法]
public DateTime? BirthDate{get; set;}
用可空类型
[解决办法]
数据库中还是 datetime 类型, datetime null
[解决办法]
符串时间可以排序,不用来回转换格式。
[解决办法]
探讨
datetime...

如果有这个字段查询。。。比如时间段查询(要查1980-1-1日到1990-1-1出生的人)。。用varchar会给你添不少乱

如果时间有时可以不填,你只需给定个默认值而已,比如没有输入生日的,生日字段都为"1900-01-01"

[解决办法]
各有各的缺点,datetime在null的情况下,在页面显示什么“0001-00-00”之类的字符串 还得判断,在c#里如果为空的时候不能直接转换成datetime类型,要容错,要判断,如果你要转换成某个格式的话,还是得转换字符串类型....而varchar就是转换问题,相比我比较喜欢用varchar
[解决办法]
datetime?
[解决办法]
探讨

各有各的缺点,datetime在null的情况下,在页面显示什么“0001-00-00”之类的字符串 还得判断,在c#里如果为空的时候不能直接转换成datetime类型,要容错,要判断,如果你要转换成某个格式的话,还是得转换字符串类型....而varchar就是转换问题,相比我比较喜欢用varchar

[解决办法]
如果为了查询速度快的话,你最好使用日期Ticks.

数据库对应的类型是bigint.
[解决办法]
INT
[解决办法]
datetime
------解决方案--------------------


DateTime:日期和时间数据,值范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。
SmallDateTime:日期和时间数据,值范围从 1900 年 1 月 1 日到 2079 年 6 月 6 日,精度为 1 分钟。

如果是出生日期,可以用以上两种之一。

读书人网 >C#

热点推荐