最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

你也許希望根據(jù)輪班對記錄進行分組,但是在你的計劃中會有兩個非常令人頭痛的問題:
(1)不是所有的雇員都是按時到達的;
(2)有時候員工工作的時間會比他們的一個輪班的時間長一些。

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

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

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

解決方案

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

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

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

復制代碼 代碼如下:

DECLARE @StartTime VARCHAR(20)
SET @StartTime ="22:59:59"
SELECTTOP 1 ShiftName FROM ShiftWork.Shifts
WHERE Shifts.StartTime <= @StartTime
ORDERBY StartTime DESC


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

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

相關(guān)文章

  • SQL?server插入報錯:當?IDENTITY_INSERT?設(shè)置為?OFF?時不能為表?‘XXX‘?中的標識列插入顯式值的問題解決

    SQL?server插入報錯:當?IDENTITY_INSERT?設(shè)置為?OFF?時不能為表?‘XXX‘?

    這篇文章主要介紹了SQL?server插入報錯:當?IDENTITY_INSERT?設(shè)置為?OFF?時,不能為表?‘XXX‘?中的標識列插入顯式值的問題,該問題是給SQL server數(shù)據(jù)庫中的某個表插入數(shù)據(jù)引起的報錯,一般出現(xiàn)在該表為自增的情況下,本文給大家分享解決方法,需要的朋友可以參考下
    2023-09-09
  • 我也有微信朋友圈了 Android實現(xiàn)

    我也有微信朋友圈了 Android實現(xiàn)

    最近寫了一個簡單的朋友圈程序,包含了朋友圈的列表實現(xiàn),視頻的錄制、預覽與上傳,圖片可選擇拍照或者從相冊選取,從相冊選取可以一次選擇多張照片,并且限制照片的張數(shù),想擁有真正屬于自己的朋友圈嗎?快來圍觀
    2016-05-05
  • 深入分析SQL Server 存儲過程

    深入分析SQL Server 存儲過程

    本文給大家詳細介紹了sqlserver的存儲過程,包括存儲過程的概念、優(yōu)缺點、系統(tǒng)存儲過程、用戶自定義存儲過程等方面的內(nèi)容了,有需要的小伙伴可以參考下。
    2015-06-06
  • SQLSERVER分布式事務(wù)使用實例

    SQLSERVER分布式事務(wù)使用實例

    這篇文章主要介紹了如何使用SQLSERVER分布式事務(wù)的方法,大家參考使用吧
    2013-11-11
  • CPU?核心數(shù)超過?Enterprise?Server/CAL?限制問題的解決方法

    CPU?核心數(shù)超過?Enterprise?Server/CAL?限制問題的解決方法

    最近有客戶要求安裝sql?server?2019?數(shù)據(jù)庫,安裝過程中提示Enterprise?Server/CAL?CPU?核心利用率限制規(guī)則生成了警告,CPU?核心數(shù)超過?Enterprise?Server/CAL?限制,20?個物理核心,或已啟用超線程的?40?個邏輯核心,原來企業(yè)版也是有區(qū)別的
    2024-04-04
  • SQL Server表分區(qū)刪除詳情

    SQL Server表分區(qū)刪除詳情

    這篇文章主要介紹了SQL Server表分區(qū)刪除,刪除分區(qū)又稱為合并分區(qū),簡單地講就是將多個分區(qū)的數(shù)據(jù)進行合并。現(xiàn)以表Sales.SalesOrderHeader作為示例,演示如何進行表分區(qū)刪除。下面就和小編一起進入文章學習該內(nèi)容吧
    2021-10-10
  • 數(shù)據(jù)庫清除日志文件(LDF文件過大)

    數(shù)據(jù)庫清除日志文件(LDF文件過大)

    數(shù)據(jù)庫清除日志文件,(LDF文件過大),一般情況下,有更簡單的方法,需要在sqlserver查詢執(zhí)行。
    2009-11-11
  • SQL Server實現(xiàn)將特定字符串拆分并進行插入操作的方法

    SQL Server實現(xiàn)將特定字符串拆分并進行插入操作的方法

    這篇文章主要介紹了SQL Server實現(xiàn)將特定字符串拆分并進行插入操作的方法,涉及SQL Server的循環(huán)、遍歷、判定及插入等相關(guān)操作技巧,需要的朋友可以參考下
    2016-08-08
  • MSSQL內(nèi)外連接(INNER JOIN)語句詳解

    MSSQL內(nèi)外連接(INNER JOIN)語句詳解

    這幾天重新溫習了一下SQL的書本,現(xiàn)在的思路應(yīng)該是很清楚了,現(xiàn)在把自己的理解發(fā)出來給大家溫習下。希望和我一樣對SQL的連接語句不太理解的朋友能夠有所幫助
    2006-11-11
  • 簡單觸發(fā)器的使用 獻給SQL初學者

    簡單觸發(fā)器的使用 獻給SQL初學者

    簡單觸發(fā)器的使用 獻給SQL初學者,使用sqlserver的朋友可以參考下。
    2011-09-09

最新評論

荆州市| 阿图什市| 新津县| 宁城县| 岗巴县| 龙山县| 托克托县| 绥德县| 正镶白旗| 满洲里市| 朝阳县| 株洲县| 双峰县| 扎鲁特旗| 铁岭市| 冀州市| 久治县| 泰兴市| 永州市| 余江县| 仪陇县| 道孚县| 图木舒克市| 镇平县| 永昌县| 公主岭市| 尉氏县| 台南市| 太仓市| 阿拉善盟| 栖霞市| 安徽省| 老河口市| 漳浦县| 金乡县| 酒泉市| 盘山县| 五原县| 高密市| 衡阳县| 克山县|