Sql 使用datediff返回至少相差两天的记录

Sql 使用datediff返回至少相差两天的记录,sql,sqlanywhere,Sql,Sqlanywhere,我有一个SQL Anywhere表,其中有一个名为fecha_inicio的日期字段,该字段的有效值是2017年12月12日,现在我需要创建一个语句,从表中获取fecha_inicio在当前日期前至少两天的所有记录,这就是我目前所做的 AND ((DATEDIFF(day, fecha_inicio, cast(getdate()as date)<=2) 但是它不会返回任何结果或抛出任何异常,您能帮我改进一下这个声明吗 这就是整个句子 "SELECT numero_orden, hora

我有一个SQL Anywhere表,其中有一个名为fecha_inicio的日期字段,该字段的有效值是2017年12月12日,现在我需要创建一个语句,从表中获取fecha_inicio在当前日期前至少两天的所有记录,这就是我目前所做的

AND ((DATEDIFF(day, fecha_inicio, cast(getdate()as date)<=2)
但是它不会返回任何结果或抛出任何异常,您能帮我改进一下这个声明吗

这就是整个句子

"SELECT numero_orden, horario, accion_formativa FROM DBA.orden_inicio_af WHERE (numero_orden_inicio = ?) AND ((DATEDIFF(day, fecha_inicio, cast(getdate()as date)<=2) AND (estado_orden_inicio = '01' OR  estado_orden_inicio = '02' OR  estado_orden_inicio = '03') AND (nit = ?)"
不要在列上使用datediff。相反,直接与getdate进行比较。这对优化器更好

我认为你打算:

where fecha_inicio < dateadd(day, -2, cast(getdate() as date))