查找过期的记录

时间:2019-03-15 22:57:00

标签: sql

我有一张桌子,其中两列是:

___________________________________________________
|  CREATED_DATE (DATE TYPE)  |   TTL(MINS IN INT)  |
|____________________________|_____________________|

我正在尝试查找已过期的记录。

到目前为止,我知道了:

SELECT CREATED_DATE, TTL, STR(TTL) as DIFF 
FROM TABLE 
WHERE 
    CREATED_DATE + interval  '30' minute 
        < CAST(sys_extract_utc(SYSTIMESTAMP) AS DATE)
;

问题是:如果我想使用TTL而不是常量'30',请尝试:

+ interval '30' minute 

收件人:

+ interval TTL minute

或:

+ interval DIFF minute

不起作用。

如何使用TTL(以分钟为单位)并将其添加到创建时间以查看数据是否已过期?

可能有助于缩小答案范围的其他要点。

  1. 我将使用语句来最终清除(删除)而不是读取(选择)。因此,我不想多次读取记录。

  2. 该语句进入在getSession()。doWork中调用的Work类中的hibernate的execute函数。

谢谢!

2 个答案:

答案 0 :(得分:1)

在SQL Server中,您也可以使用DATEADD()

DATEADD(minute, ttl, created_date)

答案 1 :(得分:0)

您可以尝试:

rvm install ruby-2.5.0