Ⅰ 如何查看 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裡面如何將現有的排班表對應到打卡時間裡面
你這兩張表有對應關系嗎?如果有的話才可以轉,沒有的話就不知道哪個科室和哪個人員對應