Ⅰ 如何查看 sql 的操作记录
SELECT * From ::fn_dblog(Default,Default)
DBCC Log(database,type)
database- 任一数据库的ID或名字
type - 输出结果的类型:
0 - 最少信息(operation, context, transaction id)
1 - 更多信息(plus flags, tags, row length)
2 - 非常详细的信息(plus object name, index name,page id, slot id)
3 - 每种操作的全部信息
4 - 每种操作的全部信息加上该事务的16进制信息
默认 type = 0
Ⅱ Sql 如何将表中的考勤记录,按时间段统计次数,不分工号,只按日期和时间段
select convert(char(10),iotime,120) as 日期,sum(case when datediff(Hour,convert(char(10),iotime,120),iotime)>=15 then 1 else 0) as 15点之后的个数,sum(case when datediff(Hour,convert(char(10),iotime,120),iotime)<15 then 1 else 0) as 15点之前的个数 from 表名 where 这的条件看自己的了,愿意一天或者一个时间段都可以了
Ⅲ 如何查看sql数据 操作记录日志
方法一:
可以通过执行该命令来查看错误日志信息:exec xp_readerrorlog
方法二:
在SQL SERVER Management Studio中连接该sql server实例,object Explorer中查找Management->SQL Server logs->右键选view-》选择你要看的日志信息(sql server log or sql server and Windows log)
方法三:
去安装路径下去找你的log文件,我的默认实例路径如下
driver:\SQL Server 2008 R2\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG
Ⅳ VB怎么查询SQL数据库一段时间内早、中、晚班记录
Select * From Table where Date>='" & StartDate & "' and Date<='" & EndDate & "'
and Time>='" & StartTime & "' and Date<='" & EndTime & "'
Ⅳ 求统计每周记录数的SQL语句
新建一个周信息表,存储周信息(周号、周开始时间、周结束时间)
你的周是按照自然周,还是按月结的周?自然周就不用说了,正常的周一到周日。按月结的,就是所有的周都落在一个月内,不会存在跨月的情况。比如2010年1月第一周就是 2010年1月1日到2010年1月9日,这样一周可能大于七天,也可能小于7天。
按照自然周的给你个方法:
create table bga050t (weak_no varchar(10),
strt_dt datetime,
end_dt datetime
CONSTRAINT [PK_bga050t] PRIMARY KEY CLUSTERED
(
[weak_no]
) ON [PRIMARY]
)
declare @weak_no varchar(18)
declare @strt_dt datetime
declare @end_dt datetime
declare @n int
set @n=1
set @strt_dt = '2007-12-31'
set @weak_no = ''
WHILE(@strt_dt < '2021-01-04')
BEGIN
IF @weak_no<>left(convert(varchar(10),@strt_dt,120),8)
BEGIN
set @weak_no=left(convert(varchar(10),@strt_dt,120),8)
set @n=1
end
set @end_dt= dateadd(d,6,@strt_dt)
insert into bga050t (weak_no,strt_dt,end_dt)
values(@weak_no+convert(varchar,@n),@strt_dt,@end_dt)
set @n=@n+1
set @strt_dt=dateadd(d,1,@end_dt)
END
你要查询年月周只需要把周号分解就可以了。
select a.* from 表 inner join
bga050t b on a.dt between b.strt_dt and b.end_dt
where left(b.weak_no,7)='2009-02' and [周数] = right(b.weak_no,1)
Ⅵ SQL 如何选出 最近一次"值班日期" 作为"最近值班日期"
注意修改[你的表名]
SELECT [名称], [展厅值班] AS [最近展厅值班], [电话值班] AS [最近电话值班]
FROM
(
SELECT [名称], [值班类型], MAX([值班日期]) AS [值班日期]
FROM [你的表名]
GROUP BY [名称], [值班类型]
) AS [T]
PIVOT
(
MAX([值班日期])
FOR [值班类型] IN ([展厅值班], [电话值班])
) AS [PivotTable]
Ⅶ SQL2000,根据排班,员工信息表,批量生成考勤记录表。
with pb as ( --每天排班的上班准点秒数与下班准点秒数
select 工号 id,
(case d1 when 10 then 8 when -10 then 20 when 8 then 8 else 0 end)*3600 sb1,
(case d1 when 10 then 20 when -10 then 32 when 8 then 17 else 64 end)*3600 xb1,
--...
(case d31 when 10 then 8 when -10 then 20 when 8 then 8 else 0 end)*3600 sb31,
(case d31 when 10 then 20 when -10 then 32 when 8 then 17 else 64 end)*3600 xb31
),
kq1 as (
select userid id, checktime ct, checktype type, row_number() over(order by checktime) rn
from c
),
kq2 as ( --必须保证有上班就有下班且同一天上班只有1个,否则要去重
select t1.id, day(t1.checktime) dd, --几号
datediff(ss, cast(convert(char(10), t1.ct, 120) as datetime, t1.ct) sb, --上班秒数
datediff(ss, cast(convert(char(10), t1.ct, 120) as datetime, t2.ct) xb --下班秒数
from kq1 t1 join kq1 t2 on t1.id=t2.id and t1.rn=t2.rn+1
where t1.type='I'
),
kq as (
select id,
max(case when dd=1 then sb end) sb1, max(case when dd=1 then xb end) xb1,
---...
max(case when dd=31 then sb end) sb2, max(case when dd=31 then xb end) xb31,
from kq2
group by id
)
select ui.userid, ui.name,
case when kq.sb1<=pb.sb1 then '准点' else '不准点' end sb1,
case when kq.xb1>=pb.xb1 then '准点' else '不准点' end xb1,
--...
case when kq.sb31<=pb.sb31 then '准点' else '不准点' end sb31,
case when kq.xb31>=pb.xb31 then '准点' else '不准点' end xb31
from userinfo ui left join pb on ui.userid=pb.id
left join kq on ui.userid=kq.id
大致如此,没测,自己看明白后按自己需求改吧
Ⅷ 想在查询里面把排班班次表的班次相对应到打卡时间上,请问各位大神如何写SQL语句谢谢!!!
我以前搞过考勤系统。我把大概的思路说下,希望对你有帮助。
1,建立设定班别的table
2,增加班别的迟到早退时间栏位(小时,分钟)
3,写一个function,传入刷卡小时和分钟,当天班别。比较刷卡时间和班别的迟到早退时间,返回1(真)和0(假)(根据班别,查询出对应的迟早早退时间。第一笔卡比较迟到,最后一笔卡比较早退)
4,区分这比卡是当天的,还是昨天的,如果是昨天的要追溯到昨天
5,写一个function,传入工号,日期,获得该员工当天的班别
6,select 刷卡表,将迟到早退的function范围值为1的记录都找出来
Ⅸ sql里我有一张全年工作日表,如9-1,9-2,9-4....,我建立了一个视图输入日期就可以查询当天排班
用代理作业,就是计划任务,sqlserver自带的,写好更新插入语句就会定时自动执行的。数据得进行判断,没有在新表的数据才进行插入,已经在的数据可以做更新处理,或者不处理。
Ⅹ SQL里面如何将现有的排班表对应到打卡时间里面
你这两张表有对应关系吗?如果有的话才可以转,没有的话就不知道哪个科室和哪个人员对应