- ©«¤l
- 1
- ¥DÃD
- 1
- ºëµØ
- 0
- ¿n¤À
- 2
- ÂI¦W
- 0
- §@·~¨t²Î
- windows7
- ³nÅ骩¥»
- office 2007
- ¾\ŪÅv
- 10
- ©Ê§O
- ¨k
- µù¥U®É¶¡
- 2016-1-25
- ³Ì«áµn¿ý
- 2016-1-26
|
¥H¤U¬O§Ú¹J¨ìªº°ÝÃD
½Ð°Ý ¦pªG¸ê®Æ®w¤¤ªº¸ê®Æ¤W¤U¯Z®É¶¡¬O¦b¦P¤@±Æ¤¤
¦Ó§Ú¥u¯à§ì¥X¤@¤Ñ ªº¤W¤U¯Z
½Ð°Ý
1.§Ún¦p¦ó ¥ÎÅý¥L¥Î°j°é¶]¥X§Únªºµ²ªG?
2.§Ú¥[¤J¤U±ªº¤èªk ³£·|¶]¥X¸ê®Æ®w¦s¦b#F³o¨Ç(§Ú¤]¸Õ¹Linsert into XXX ( ) Select )
WHILE(@VAR1<=31)
BEGIN
SET @day1 = DATEADD(day, 1, @day1)
SET @VAR1 =@VAR1 + 1
END
use demo_face
DECLARE @begintime2 as datetime
DECLARE @endtime2 as datetime
DECLARE @day as datetime
DECLARE @VAR1 int
set @day = '2016-01-23'
set @begintime2 = ' 00:00:00.000'
set @endtime2 = ' 23:59:00.000'
DROP TABLE #f2 ,#f3,#f4,#f5
Create table #f5 (UserNo char(50), ¤é´Á1 date,¤W¯Z®É¶¡ time, ¤U¯Z®É¶¡ time,workhours time,workhours1 int,workhours2 int)
SELECT [UserNo],[MatTime],[WorkTime] into #f2 FROM dbo.MF_Record where MatTime between @day+ @begintime2 and @day+@endtime2
select [UserNo],min(#f2.MatTime) as ¤W¯Z®É¶¡,max(#f2.MatTime) as ¤U¯Z®É¶¡,(max(#f2.MatTime)-min(#f2.MatTime)) as ¤u®É into #f3 from #f2 group by userno
select [UserNo],CONVERT(varchar(12),#f3.¤W¯Z®É¶¡,102) as ¤é´Á1,CONVERT(varchar(8),#f3.¤W¯Z®É¶¡,114) as ¤W¯Z®É¶¡,CONVERT(varchar(8),#f3.¤U¯Z®É¶¡,114) as ¤U¯Z®É¶¡,CONVERT(varchar(8),#f3.¤u®É,114) as ¤u®É into #f4 from #f3
INSERT INTO #f5(UserNo,¤é´Á1,¤W¯Z®É¶¡,¤U¯Z®É¶¡,workhours,workhours1,workhours2) select #f4.UserNo,CONVERT(varchar(12),#f4.¤é´Á1,102) as date, #f4.¤W¯Z®É¶¡ as duty,#f4.¤U¯Z®É¶¡ as offwork,#f4.¤u®É as workhours,datediff(HH,#f4.¤W¯Z®É¶¡,#f4.¤U¯Z®É¶¡) as workhours1,datediff(HH,#f4.¤W¯Z®É¶¡,#f4.¤U¯Z®É¶¡)-1 as workhours2 from #f4
select * from #f4 |
|