现在要查询指定时间段内的考勤记录数据,查询时间区间:昨天,今天,本周,本月,本年
因为考勤表是按月生成的
hr_table_2009_03, hr_table_2009_05,hr_table_2009_06 ........
表结构:字段 ID(bigint primary key) CheckInTime(datetime) type (smallint)
当天一个时间点 比如 '2009-6-1 22:40:05'
现在遇到的问题是
昨天 , 本周,本年 开始时间和结束时间是跨月的,
特别是本周,因为要确认哪天是上个月的,有无比较简洁的SQL语句 来读取考勤记录
望大家能指教一下!!
考勤的问题我遇到过。
这个确实有问题。看你的 考勤的数据库是sql2000.而且只有一个字段。如果你全部一次sq 语句搞定所有的处理 估计比较难。
1.首先你要查询出最早时间和最晚时间,当天的进入和离开公司的时间;你的原数据表聚集索引没在时间列上吗?
2.你这个还按月分表,这个链接的话也是比较麻烦,及时使用临时表的话,效率也不是很高。
3.及时多表连接查询,时间列上建立聚集索引会好点。
4.也可以考虑把过滤的时间记录导入第三个表,employeeid,checkinTime,checkoutTime.设置一个计划任务定期执行导入语句,这个数据相对较少。
你在做后期处理的话会方便点~
还在用分表?看来可能是SQL2000,动态表名的话一般是用SP在里面自动拼接SQL语句来查询。
学习