TSQL检查工作完成日期是否小于今天



在一个员工任务应用程序中,我必须找到员工是否按时完成了任务,或者他正在加班,所以我把这些放在一起发现它不工作

SELECT case when (CAST('2011-1-1' as datetime) < cast('2011-1-2' as datetime)) THEN 'Finished' ELSE 'UnFinished' end

日期在这里是硬编码的,因为我想在继续之前先测试一下逻辑。

编辑

对不起,我错过了select语句之前的select,因此出现错误

Incorrect syntax near the keyword 'case' .

但是现在我想知道是否有更有效的方法来做到以上考虑到比较字段datetime

如果你需要TODAY,而完成工作的日期是datetime,那么最好使用这个表达式:

DECLARE @today DATETIME 
SET @today = CONVERT(varchar, GETDATE(), 112)
SELECT 
  case when WorkFinishedAt_Column < @today THEN 'Finished' ELSE 'UnFinished' end
FROM YourTable

如果变量

中只有一个值
DECLARE @today DATETIME
SET @today = CONVERT(varchar, GETDATE(), 112)
SELECT 
  case when @WorkFinishedAt < @today THEN 'Finished' ELSE 'UnFinished' end

不能用IF ?if (CAST('2011-1-1' as datetime) <(将"2011-1-2"作为日期时间))选择"完成"ELSE select 'UnFinished'

最新更新