从表中获取值,其中日期差异大于特定值

时间:2018-06-12 09:47:10

标签: sql oracle datediff

我有一个表EMPLOYEE_STATUS,带有列 SUBMIT_DATE的值为11-05-18 11:27:34.086000000 AMUPDATED_ON值为11-06-18 12:55:22.064000000 PM 这基本上是当前的日期。

我需要对oracle数据库进行sql查询,以查找那些在提交日期和更新日期或当前日期之间的天数差异为30天或更多的行。 我尝试了DATEDIFF功能但无法使其正常工作。

我尝试了以下(不起作用):

select * from EMPLOYEE_STATUS e 
where DATEDIFF(month, '12-06-18 03:34:09.448000000 PM', e.SUBMIT_DATE) >=1

1 个答案:

答案 0 :(得分:-1)

函数DATEDIFF()未包含在Oracle SQL Server中(如本文所述)。相反,您只需相互减去日期,如下所示:

SELECT (11-06-18 12:55:22.064000000 PM) - (11-05-18 11:27:34.086000000 AM);

返回天数的差异。因此,您必须对此进行补偿(在您的示例中,您正在寻找一个月的差异,可能是28到31天之间的任何差异)。

对于使用 MySQL SQL Server 的用户,您可以这样做:

SELECT DATEDIFF(month, '2018-05-11 11:27:34', '2018-06-11 12:55:22') AS DateDiff;