En mi caso tengo un campo en mi tabla de usuarios que registra cuando ha sido la última actualización o acceso de este usuario a la aplicación.
La query a realizar se la siguiente:
SELECT * FROM users WHERE LAST_UPDATED_DATE > SYSTIMESTAMP - (?/1440)
Donde ? tenemos que sustituirlo por el número de minutos que queremos restar a la fecha del sistema.
SYSTIMESTAMP nos devuelve la fecha del sistema incluyendo hora minutos y segundos con el TimeZone de la base de datos.
El valor de 1440 es porque un día tiene 1440 minutos 24 x 60. Y usamos minutos en este formato ya que lo que se resta normalmente a SYSTIMESTAMP son días.
Por lo tanto mi query final es la siguiente:
PreparedStatement pstmt = null; ResultSet rSet = null; Connection conn = null; int minutes = 15; ........ ........ String strSQL="select from users where LAST_UPDATED_DATE > SYSTIMESTAMP-(?/1440)"; pstmt = conn.prepareStatement(strSQL); pstmt.setInt(1, minutes); rSet = pstmt.executeQuery();
Referencias:
Time Aritmetic with Oracle
SYSTIMESTAMP
No hay comentarios:
Publicar un comentario