datetime SQL Server的IF-ELSE语句

datetime SQL Server的IF-ELSE语句,sql,sql-server,Sql,Sql Server,我试图以秒为单位计算日期时间差。我的代码的作用->如果A.KIOSKLASTUPDATED列为NULL,则获取当前时间。然后计算时间差。这部分操作正确 现在我想添加if-else语句来表示以秒为单位的日期时间差。如果差异则需要大小写表达式: SELECT (SELECT TOP 1 CONCAT(B.OPERATORID,' ',B.OPERATORNAME) FROM ACTIVITY_LOG AS B WHERE B.KIOSKID = A.KIOSKID ORDER BY B.CREATE

我试图以秒为单位计算日期时间差。我的代码的作用->如果A.KIOSKLASTUPDATED列为NULL,则获取当前时间。然后计算时间差。这部分操作正确

现在我想添加if-else语句来表示以秒为单位的日期时间差。如果差异则需要大小写表达式:

SELECT (SELECT TOP 1 CONCAT(B.OPERATORID,' ',B.OPERATORNAME) FROM ACTIVITY_LOG AS B WHERE B.KIOSKID = A.KIOSKID ORDER BY B.CREATED_AT DESC
       ) AS CURRENTUSER,
       (CASE WHEN datediff(ss, ISNULL(CONVERT(VARCHAR(19), A.KIOSKLASTUPDATED, 20), CONVERT(VARCHAR(19), getdate(), 20)), CONVERT(VARCHAR(19), getdate(), 20)) <=300
             THEN '1' ELSE '0'
        END) AS KIOSKSTATUS
FROM KIOSK_SETUP A LEFT JOIN
     DEPARTMENT C 
     ON A.DEPARTMENTID = C.ID;
也就是说,查询中还有许多其他问题:

您正在将日期/时间值转换为字符串,然后对其使用datetime函数。 表别名应该是表名的缩写。A和C没有意义。 IF用于T-SQL代码,不用于查询。
为什么要否决我的问题?请解释一下,让我知道原因
SELECT (SELECT TOP 1 CONCAT(B.OPERATORID,' ',B.OPERATORNAME) FROM ACTIVITY_LOG AS B WHERE B.KIOSKID = A.KIOSKID ORDER BY B.CREATED_AT DESC
       ) AS CURRENTUSER,
       (CASE WHEN datediff(ss, ISNULL(CONVERT(VARCHAR(19), A.KIOSKLASTUPDATED, 20), CONVERT(VARCHAR(19), getdate(), 20)), CONVERT(VARCHAR(19), getdate(), 20)) <=300
             THEN '1' ELSE '0'
        END) AS KIOSKSTATUS
FROM KIOSK_SETUP A LEFT JOIN
     DEPARTMENT C 
     ON A.DEPARTMENTID = C.ID;