【考勤】如果人员没有登录签到则自动插入“未签到”,求前辈们给个解决思路。万分感谢。

ntwqy_2008 2009-09-09 03:55:12
RT
没有想到如何自动插入数据,求前辈们给个解决思路。万分感谢。
...全文
326 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mbh0210 2009-09-09
  • 打赏
  • 举报
回复
楼主可以这样做,将用户的都先增加到当日的签到记录中,早上签到时间默认都是1900-1-1
如果签到了就修改为签到时间,如果没有签到,那么则为1900-1-1
你取数据主要判断签到时间是否为1900-1-1就可以了。是就是未签到
ntwqy_2008 2009-09-09
  • 打赏
  • 举报
回复
1个头2个大 - -# 我日。
ntwqy_2008 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jjl_sky 的回复:]
不过这样  如果你们作息时间调整的话 ,就要调整job的执行时间了 
[/Quote]

JOB是什么啊? - -# 。。
动态设置时间呀,不会每次修改作息时间我都要修改代码吧 - -#
金大哈 2009-09-09
  • 打赏
  • 举报
回复
不过这样 如果你们作息时间调整的话 ,就要调整job的执行时间了
金大哈 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ntwqy_2008 的回复:]

上午上班,上午下班,下午上班,下午下班4个时间是动态设置的。。。。。。
[/Quote]

可以再一个job里设置4个时间计划

1、2、3、4
分别对应你所说的 “上午上班,上午下班,下午上班,下午下班”
这样JOB每天在这个四个适合都会执行的
aihui109 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 greenjun 的回复:]
数据库字段默认值为"未签到"
[/Quote]

[Quote=引用 7 楼 netniule 的回复:]
找不到他签到的记录不就是未签到?为什么一定要在里面插一条未签到的记录?
[/Quote]

楼主反思路思考,不知道可不可以?如楼上所言:
1、给“签到”插入记录,当天没有记录的,既是没签到的。
2、默认插入所有“未签到”,“签到”的Update即可.
ntwqy_2008 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jjl_sky 的回复:]
用一个job 
insert into 考勤表 (col1,col2,....)
select col1,'未签到',.... from 员工表 where col1 not in (select col from 考勤表 where time 处理条件)

每天在上班前规定迟到的时间点自动执行 一下就可以了【先弄一个sql job 就可以了,无需程序和人工】
[/Quote]
上午上班,上午下班,下午上班,下午下班4个时间是动态设置的。。。。。。
金大哈 2009-09-09
  • 打赏
  • 举报
回复
用一个job
insert into 考勤表 (col1,col2,....)
select col1,'未签到',.... from 员工表 where col1 not in (select col from 考勤表 where time 处理条件)

每天在上班前规定迟到的时间点自动执行 一下就可以了【先弄一个sql job 就可以了,无需程序和人工】
C5662601 2009-09-09
  • 打赏
  • 举报
回复
应该考虑到迟到或请几个小时假的情况
员工表left out join考勤表 未签到的显示空白
netniule 2009-09-09
  • 打赏
  • 举报
回复
找不到他签到的记录不就是未签到?为什么一定要在里面插一条未签到的记录?
fengying0529 2009-09-09
  • 打赏
  • 举报
回复
写个job让其根据你的截止时间来自动更新状态呢 其实逻辑还是和3楼的差不多
tkx180 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jianlanzq 的回复:]
正常登录的时候是要插入时间的吧

比如8点30上班。利用timer控件在8点31分时select出今天没有登录的用户ID,然后循环插入一遍。
[/Quote]
这个方法比较简单。
ntwqy_2008 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bitcoffee 的回复:]
一个用户表(列:用户名),一个考勤表(列:用户名,签到时间,状态-默认值设为未签到).
用户登录签到时,先判断select * from 考勤表 where 签到时间 = '今天时间(年月日)',
如果没有返回结果,说明是今天的第一个签到人,则insert考勤表(用户名,签到时间),将所有的用户表中的用户名都插入进去,并更新此用户的状态.
如果有返回结果,则只需要更新此用户考勤表里的签到时间和状态
[/Quote]
这样也是个方法,但是如果上午签到之后查询签到情况那么中午下班前腿,下午上班签到,下午下班前腿都会显示出“未签到” - -#,这样违背了需求了。
现在的需求是比如上午9:00上班,中午11:00下班,那么如果11:00之后如果有用户没有进行上午上班签到那么就将没有签到的用户状态插入为:“未签到”。
BitCoffee 2009-09-09
  • 打赏
  • 举报
回复
一个用户表(列:用户名),一个考勤表(列:用户名,签到时间,状态-默认值设为未签到).
用户登录签到时,先判断select * from 考勤表 where 签到时间 = '今天时间(年月日)',
如果没有返回结果,说明是今天的第一个签到人,则insert考勤表(用户名,签到时间),将所有的用户表中的用户名都插入进去,并更新此用户的状态.
如果有返回结果,则只需要更新此用户考勤表里的签到时间和状态
  • 打赏
  • 举报
回复
正常登录的时候是要插入时间的吧

比如8点30上班。利用timer控件在8点31分时select出今天没有登录的用户ID,然后循环插入一遍。
greenjun 2009-09-09
  • 打赏
  • 举报
回复
数据库字段默认值为"未签到"

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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