當前位置:首頁 » 數據倉庫 » 簽到表資料庫設計
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

簽到表資料庫設計

發布時間: 2022-09-25 06:32:42

sql2000資料庫問題,現在有兩張表,一張員工表和一張每日簽到表,能不能建立一個觸發器

這個需要建一個存儲過程和一個資料庫作業和一個返回隨機時間段的函數才能實現
如果有A表(員工),sUserCode,B表(簽到表),sUserCode,dtSignInDate
-- 返回隨機時間段的函數
Create Function RandDateTime(@RandNum Decimal(38,18),@StartTime DateTime,@EndTime DateTime)
Returns DateTime
As
Begin
Declare @HourDiff Decimal(38,18)--兩個時間之間的小時差值
Declare @MinutePartDiff Decimal(38,18)--分鍾部分的差值
Declare @SecondPartDiff Decimal(38,18)--秒部分的差值
Declare @MsPartDiff Decimal(38,18)--毫秒部分的差值
Declare @SmallDate DateTime
Declare @BigDate DateTime
Declare @ReturnDateTime DateTime

/*取各部分差值*/
Set @MsPartDiff = Abs(Convert(Decimal(38,18),DatePart(ms,@EndTime)-DatePart(ms,@StartTime)))
Set @SecondPartDiff = Abs(Convert(Decimal(38,18),DatePart(s,@EndTime)-DatePart(s,@StartTime)))
Set @MinutePartDiff = Abs(Convert(Decimal(38,18),DatePart(mi,@EndTime)-DatePart(mi,@StartTime)))
Set @HourDiff = DateDiff(hh,@StartTime,@EndTime)
Set @SmallDate = @StartTime
Set @BigDate = @EndTime
If @HourDiff <0
Begin
Set @SmallDate = @EndTime
Set @BigDate = @StartTime
Set @HourDiff = -@HourDiff
End

ActionLable:
Declare @HourDecimal Decimal(38,18)--小時的小數部分
Declare @HourString varchar(200)
Set @HourDiff = @HourDiff * @RandNum
Set @HourString = CONVERT(VARCHAR(200),@HourDiff)
Set @HourString = SubString(@HourString,CharIndex('.',@HourString)+1,Len(@HourString))
Set @HourString = '0.' + @HourString
Set @HourDecimal = Convert(Decimal(38,18),@HourString)
Set @MsPartDiff = (@MsPartDiff + @SecondPartDiff * 1000 + @MinutePartDiff*1000*60 + @HourDecimal * 3600*1000) * @RandNum
Set @ReturnDateTime = DateAdd(hh,@HourDiff,@SmallDate)
Set @ReturnDateTime = DateAdd(ms,@MsPartDiff,@ReturnDateTime)
Return @ReturnDateTime
End

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

-- 自動簽到存儲過程
Create procere p_AutoSignIn
begin
-- @startdate 打卡開始時間
-- @enddate 打卡結束時間
declare @startDate datetime
declare @enddate datetime
set @startDate=getdate()
set @endDate=dateadd(n,[20],@startDate) 可以換成自己需要的時間差值
-- a表示0-1 之間的隨機數值,可用小數
insert into B(sUserCode,dtSignInDate)
select sUserCode,RandDatetime (a,@startdate,@enddate) from A
end

-- 創建計劃作業
企業管理器
--管理
--SQL Server代理
--右鍵作業
--新建作業
--"常規"項中輸入作業名稱
--"步驟"項
--新建
--"步驟名"中輸入步驟名
--"類型"中選擇"Transact-SQL 腳本(TSQL)"
--"資料庫"選擇執行命令的資料庫
--"命令"中輸入要執行的語句:
update base set flag=0 where datediff(dd,date,getdate())=0

--確定
--"調度"項
--新建調度
--"名稱"中輸入調度名稱
--"調度類型"中選擇你的作業執行安排
--如果選擇"反復出現"
--點"更改"來設置你的時間安排為一天一次

然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行

設置方法:
我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.

❷ 單位人數少,怎樣設計會議簽到表

時間、主持人、記錄人、地點、會議主題,然後下面寫參會人員
序號、部門、時間日期、姓名、備注
就好了,希望能幫到您

❸ 類似釘釘打卡的簽到的資料庫表欄位怎麼設計

CREATETABLE[dbo].[tb_e_UserWorkTime](
[UserWorkTimeID][int]IDENTITY(1,1)NOTNULL,
[UserID][varchar](20)NOTNULL,
[SWorkTime][datetime]NOTNULL,
[EWorkTime][datetime]NOTNULL,
)ON[PRIMARY]

GO
SETANSI_PADDINGOFF
GO
EXECsys.sp_addextendedproperty@name=N'MS_Description',@value=N'員工用戶ID',@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'tb_e_UserWorkTime',@level2type=N'COLUMN',@level2name=N'UserID'
GO
EXECsys.sp_addextendedproperty@name=N'MS_Description',@value=N'上班時間',@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'tb_e_UserWorkTime',@level2type=N'COLUMN',@level2name=N'SWorkTime'
GO
EXECsys.sp_addextendedproperty@name=N'MS_Description',@value=N'下班時間',@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'tb_e_UserWorkTime',@level2type=N'COLUMN',@level2name=N'EWorkTime'

❹ mysql簽到表怎麼設計

點擊簽到,如果當天已經簽過到了,提示已經簽過到了;如果從來沒有簽過到,插入數據,把積分設置為1,連續簽到次數設置為1,最後修改時間設置為當天,歷史為1;如果今天沒有簽過到,首先計算出有多少天沒簽到了,如果是昨天簽了的,連續簽到次數加1,歷史左移一位,積分按照積分規則加上;如果超過兩天沒有簽到,連續簽到次數設置為1,歷史左移天數位,積分加上簽到單次的積分,時間為當前的修改時間;

❺ 資料庫管理員有哪證書怎麼考拜託了各位 謝謝

1、Oracle的OCP認證。

2、要獲取OCP認證,必須通過參加Oracle原廠培訓(北京、上海、廣州)或Oracle正式授權的WDP渠道的學習,才可以拿到Oracle認可的證書。

3、需要參加培訓的相關課程:

OracleDatabase11g:AdministrationII。

❻ 簽到表下面的合計數據不能自動調節怎麼辦

重新設置計算公式。
1、選擇簽到表合計數據的單元格,在上方功能欄處選擇公式欄目,點擊進入公式功能選項。
2、接著在公式欄目功能區中,選擇自動求和公式,點擊進行下一步操作。
3、點擊自動求和公式後,簽到表格內會出現一個區域選定,此時將需要數據求和的區域選中,輸入框中會出現對應的求和公式,此時按下回車鍵確認。
4、這樣求和的總數就會自動調節並計算出來,並填充到選擇的單元格中,成功地將選中的數據自動求和了。

❼ excel數據重新整理,簽到表改考勤表。

舉例說明。

例如有簽到表如圖: