日期:2014-05-18  浏览次数:20604 次

再征意见:考勤系统之刷卡时间用什么字段类型
应客户要求,我之前开发的考勤系统重新编写,后台用M$SQL
有一问题想再次征求各位意见(未做过2000人以上考勤系统的请不要答)
下面是每日员工出勤数据表结构的一部份   wDayCard
日期
工号
上班1
下班1
上班2
下班2
上班3
下班3
:
:
其中的上班?来源是考勤机里的刷卡时间,它的字段类型您建议用SmallDateTime还是Varchar或者是Int?
发表你的经验,   即帮我,也帮后来人
谢谢参与


------解决方案--------------------
没作过2000人以上的考勤,帮顶
------解决方案--------------------
datetime
------解决方案--------------------
使用datetime
------解决方案--------------------
用datetime

------解决方案--------------------
还是datetime
做个约束
------解决方案--------------------
还是datetime

------解决方案--------------------
没做过2000人
时间类型
格式统一
也方便比较
------解决方案--------------------
没作过2000人以上的考勤
------解决方案--------------------
datetime
------解决方案--------------------
当然是datetime了
------解决方案--------------------
建议用int或者varchar

用datatime数据处理速度相当慢
------解决方案--------------------
2007-09-18 11:12:10

smalldatetime 4字节
datetime 8字节

varchar 19字节

个人认为 smalldatetime

至少做索引较好,字节少啊
------解决方案--------------------
高手们能写选择的原因吗?学习一下

------解决方案--------------------
如果int或者varchar比较好
那为什么MS还要把datetime类型创造出来

------解决方案--------------------
问我撒...2000人这都是小厂,你这个用什么类型都没关系,主要是考勤处理哪里看你是怎么优化地,不过我估计你这个考勤算法是按时间类来算地,八达马用是MSSQL2000地,时间用的是VARCHAR地,要注意啦人多的厂用MSSQL数据用不了多久你就知道了是不能和什么ORACLE等去比地。八达马是港资地,服务做的还不错,但是你如果认为他的考勤软件也做的非常好地话那么,我个人的观点是NONONO...,注意啦,是个人观点。
------解决方案--------------------
不行,你说的我的原来专业上了,我再说几句, 考勤软件这东西,你要做的好其实要发很多的工夫地。给分哈...有什么问题,我帮你解答,我对这东西太专业了...
------解决方案--------------------
时间用INT类型没有用过,在后续代码中,没有什么方不方便地,具体看你说的那方面咯...你是想用那一种速度快是吧,根据数据库原理用INT的快。不过你说维护方面和以后的扩展方面肯定是VARCHAR好多了,字符型吗,你什么都可以向里面放咯。如果你对考勤要求不多,或者公司的GDP还不错,八达马还马马虎虎啦。
------解决方案--------------------
值得学习
------解决方案--------------------
mark
------解决方案--------------------
个人认为用datetime比较合适。 因为如果用Varchar做时间函数操作时还要进行隐性的时间格式转换。这可能会耗一下资源。
------解决方案--------------------
create table t(id int identity(1,1),cdate datetime,ddate smalldatetime)
insert into t select getdate(),getdate()
insert into t select getdate(),getdate()
insert into t select getdate(),getdate()
select * from t

id cdate ddate
----------- ----------------------- -----------------------
1 2007-09-21 16:39:02.877 2007-09-21 16:39:00
2 2007-09-21 16:39:03.347 2007-09-21 16:39:00