@net 正如我在之前的评论中提到的,您似乎打算进行日期差异。如果是这样,那么你可以做
WHERE DATEDIFF(DD, date_entry, date_access_created) >= 2
然后会说该行指定的两个日期之间的差异大于两天。
它的工作方式是,它表示这些日期之间有多少天,在您的第一行示例中,这将是5天数差异。
完整的查询将是:
select employee_name, emp_no, date_entry, date_access_created
from tbl_employee
WHERE DATEDIFF(DD, date_entry, date_access_created) >= 2
从评论中的问题编辑:
是的,您可以排除周末,实际上我不久前就这样做了,并使用了我能找到的最简单的方法。
(DATEDIFF(dd, date_entry, date_access_created) + 1)
-(DATEDIFF(wk, date_entry, date_access_created) * 2)
-(CASE WHEN DATENAME(dw, date_entry) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, date_access_created) = 'Saturday' THEN 1 ELSE 0 END)
我知道它看起来有很大不同,但它的工作方式与我提到的第一个相同。它使用相同的 datediff 参数,即您的开始日期和结束日期,但它唯一的额外功能是检查那些日子是星期天,哪些是星期六,如果这些日子出现,我们不会从总天数中减去那些日子两个日期之间。
因此,如果您在这两个日期字段之间有 7 天,则表示它是从星期一到星期日。它会说好的,我们在那里有一个星期六和一个星期天,所以这是我们不希望在总计数中的 2 天,所以它会有 7 - 2 = 5 天的差异。
希望这是有道理的。