SQL:将IN时间和OUT时间存储在两列或仅一列中

时间:2014-04-26 18:28:36

标签: sql sql-server

为了方便快捷地计算时间和出勤率,我应该采用哪种方式存储IN和OUT时间数据?

  1. 将每位员工的IN和OUT时间存储在一行
  2. enter image description here

    1. 存储单个值(包含inout位值,0 = IN,1 = OUT)
    2. enter image description here

2 个答案:

答案 0 :(得分:0)

为了便于计算,两个字段的两列是很好的

答案 1 :(得分:0)

您的第一个提议的解决方案很好,但如果您想要使用第二个解决方案,则需要另一个列来识别员工的相关Time InTime Out记录。

像......那样的东西。

EmployeeID INT,  RecordID INT, TimeClock DATETIME,          INOUT BIT

   101               1          2014-01-01 09:00:05.123       1
   101               1          2014-01-01 17:10:05.123       0
   201               2          2014-01-01 09:00:05.123       1
   201               2          2014-01-01 17:10:05.123       0

但是,使用您的第一种方法,您需要插入记录,然后在员工离开时更新每条记录,我宁愿选择第二个选项,但建议使用我建议的附加列。