簡體   English   中英

SQL存儲日和周或周末(時間和出勤時間)的最佳方法

[英]SQL Best way to store the day and week or weekend day (time and attendance)

我有一個sql表,我將在其中存儲每個員工的時間記錄(輸入和輸出)。

表模式為:

在此處輸入圖片說明

因此,為了簡化工作時間,假期,假期等的計算。我還要在同一表格中添加一個新字段:

  • isweekday :這將讓我知道該天是否是工作日(這將有助於以后的計算)

但也想知道星期幾(星期一,星期二等),我在想從1到7的tinyint數據類型,其中1是星期一,7是星期日。

有什么建議或建議嗎? 在C#或SQL中,星期一等於一周的第一天嗎?

添加isholiday標志非常有用。 另一種方法是在表中查找假期,但是將數據直接保存在記錄中很容易。 並且,因為您已經有位標志,所以再增加一個標志可能不會使字段變大。

確定星期幾或周末的日期用處不大。 SQL Server已經提供了執行此操作的功能,特別是datepart()datename()

在某些情況下,這些功能可能難以使用。 例如,如果您必須編寫可在任何系統上運行的代碼,而不論該語言何時開始,無論語言和本地偏好如何,那么將信息存儲在記錄中可能會很有用。 也就是說, datepart()datename()不確定,因為它們取決於系統參數。 但是,對於針對一種文化編寫的大多數應用程序來說,這並不是什么大問題。

另外,在我可以想象的某些情況下,調用系統函數的開銷可能大於從記錄中讀取值的時間。 在嚴重受CPU限制的環境中,您可能需要存儲標志。 但是,我懷疑還會有其他更重要的優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM