偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

教你輕松學會SQL Server記錄輪班的技巧

數(shù)據(jù)庫 SQL Server
SQL Server記錄輪班是一種在平時的工作中很實用的操作技巧,下文中我將通過實例分析,為大家介紹SQL Server記錄輪班的技巧。

SQL Server記錄輪班的技巧:

例:公司員工采取三個輪班制度:凌晨0:00到早上8:00為***班,早上8:00到下午4:00為第二班,下午4:00到晚上12:00為第三班。

員工使用電子時鐘進行簽名,這種電子簽名可以自動將記錄添加到SQL Server數(shù)據(jù)庫中。但是,有時候,需要增加一個夜班;即使這個輪班發(fā)生在第二天,它仍然會被認為是第三班。

你也許希望根據(jù)輪班對記錄進行分組,但是在你的計劃中會有兩個非常令人頭痛的問題:

(1)不是所有的雇員都是按時到達的;

(2)有時候員工工作的時間會比他們的一個輪班的時間長一些。

為了能在你的列表中得到正確的分組,你必須假設所有的員工能在一個輪班的開始和結(jié)束時間之間的任意時間開始工作。

使用CASE語句是一種解決辦法。Listing A中的SQL語句告訴我們,在創(chuàng)建測試表沒有錯誤的情況下,它是如何工作的。

為了使程序代碼完全準確的運行,你需要在時間的小窗口中得到每一個輪班的開始時間和下一個輪班的結(jié)束時間。在剛才的例子中,你可以用'15:59:59.123'這個值代替@StartTime,然后再重新運行代碼。這時候,你必須在每一個輪班結(jié)束的分界點上增加999毫秒。

解決方案

這個例子假設輪班時間從來沒有改變過,但是如果改變了輪班時間該怎么辦呢?你必須仿照這個例子并根據(jù)改變了的時間寫出所有的代碼。

一個更好一點的主意就是,針對我們的輪班創(chuàng)建一個表來調(diào)用Shifts的開始時間和結(jié)束時間。在這個表中,你可以修改Case語句來查找StopTime列。


Listing B中包含了創(chuàng)建Shifts表并向該表中增加記錄的代碼。代碼在一個輪班中設置了時間后,這樣使代碼看上去既簡單又靈活:


DECLARE @StartTime VARCHAR(20)

SET @StartTime ='22:59:59'

SELECT*** ShiftName FROM ShiftWork.Shifts

WHERE Shifts.StartTime <= @StartTime

ORDERBY StartTime DESC

我之所以要將輪班記錄進行降序排列,是為了避免第三個輪班的邊界問題。我將用一些測試案例來論證我的結(jié)論,這些內(nèi)容你可以在Listing C中看到。

實際上,你可以將這個邏輯應用到TemeCards表的記錄中去,而不需要創(chuàng)建另外的表,也就不需要在表中增加數(shù)據(jù)了。我同樣使用一個簡單的變量來論證我的邏輯。

相信通過實例的分析不難理解,比較單單的通過理論介紹要容易很多,希望學過之后對大家能夠有所幫助。

【編輯推薦】

  1. 解析SQL Server中數(shù)據(jù)庫快照的工作原理
  2. 教你如何利用SQL Server保護數(shù)據(jù)
  3. 實現(xiàn)Standby SQL Server 數(shù)據(jù)庫的方法
責任編輯:迎迎 來源: 賽迪網(wǎng)
相關推薦

2010-07-05 12:21:57

SQL Server記

2010-10-21 15:57:37

SQL Server無

2010-08-09 09:25:23

SQL Server鏡

2010-12-21 09:47:45

SQL Server

2010-11-10 11:27:40

SQL Server重

2022-07-25 11:25:42

Linux自動化技巧

2021-03-09 10:08:15

Linux 自動化操作系統(tǒng)

2022-01-27 13:23:15

Linux技巧命令

2022-11-16 09:04:36

SQL查詢SELECT

2010-09-14 13:22:51

sql server備

2009-04-28 13:48:04

SQL Server群集技巧

2010-07-21 11:26:07

SQL Server

2009-12-23 15:55:53

Linux權限管理

2009-12-03 18:48:02

Suse Telnet

2009-12-02 13:39:34

Suse啟動cron

2011-03-31 10:52:13

2012-04-06 10:13:08

SQLSQL Server

2009-04-16 15:26:32

Sql Server記錄總數(shù)聚簇索引

2010-09-27 15:10:12

SQL Server

2009-12-14 13:44:49

Linux磁盤配額
點贊
收藏

51CTO技術棧公眾號