使用If-else语句计算员工是迟到还是及时

时间:2013-12-24 01:02:42

标签: sql

我正在尝试在select语句中使用n if-else语句来计算 如果员工有时间或迟到,我会不断搞砸。

如果员工的时间是< = 8:00,那么在指定的列中说“InTime” 带有绿色标志的其他“迟到”带有红旗。  任何提示。

SELECT TimeMasterID,CardNo,FName,LName,LocIn,DeviceIn,DateTimeOut,LocOut,DeviceOut,      CONVERT(VARCHAR(10),DateTimeIn,108)AS DateTimeIn,

    CASE
    WHEN DateTimeIn <= '08:00:00' THEN 'INTIME'
    ELSE 'LATE'

END AS Punctuality
FROM TIMEMASTER;

1 个答案:

答案 0 :(得分:1)

你可以使用像这样的Case语句

DECLARE @d DATETIME = GETDATE();

SELECT CASE WHEN  CAST(@d AS TIME) <= '08:00:00.000' THEN 'In Time'
            ELSE 'Late' END 

不知道你对这些信息到底在做什么,但是如果你想使用IF ..ELSE你可以做类似的事情

DECLARE @d DATETIME = GETDATE();         

IF (CAST(@d AS TIME) <= '08:00:00.000')
     BEGIN
       PRINT 'In Time'
     END
    ELSE 
     BEGIN 
      PRINT 'Lazy Git or Late Commer'
     END