Subtrair hora do Timestamp

02/08/2013

0

Estou tentando fazer este select mas está dando erro alguém pode me ajudar?

SELECT ACE_DATAHOTA
FROM ACESSOS
WHERE ACE.ACE_DATAHORA >= CURRENT_TIMESTEMP - CAST('00:15:00' AS TIME)

Firebird 2.1
Tiago Soares

Tiago Soares

Responder

Posts

02/08/2013

Deivison Melo

Está com erro de sintaxe... Não tenho o firebird aqui instalado para testar para vc!

Veja esses artigos, tenho certeza que irá ajudá-lo.

http://edn.embarcadero.com/article/33724

https://www.devmedia.com.br/forum/timestamp-firebird/366200

http://www.arquivodecodigos.net/dicas/firebird-aprenda-a-usar-os-tipos-de-dados-date-time-e-timestamp-do-firebird-3252.html
Responder

02/08/2013

Junior Miranda

SELECT cast(cast(current_timestamp as time) - 4500 as timestamp)
FROM rdb$database

Converta o total de minutos em segundos.

[]´s
Responder

02/08/2013

Tiago Soares

O meu problema é que o '00:15:00' é uma variável e pode ser por exemplo '01:30:30'.
Responder

02/08/2013

Tiago Soares

Fiz uma gambi aqui e funcionou.
Eu fiz assim:
ACE.ACE_DATAHORA >= DATEADD(HOUR, - EXTRACT(HOUR FROM CAST('01:15:20' AS TIME)),
                                               DATEADD(MINUTE, - EXTRACT(MINUTE FROM CAST('01:15:20' AS TIME)),
                                               DATEADD(SECOND, - EXTRACT(SECOND FROM CAST('01:15:20' AS TIME)), CURRENT_TIMESTAMP)))


SELECT CURRENT_TIMESTAMP,
       DATEADD(HOUR, - EXTRACT(HOUR FROM CAST('01:15:00' AS TIME)),
       DATEADD(MINUTE, - EXTRACT(MINUTE FROM CAST('01:15:00' AS TIME)),
       DATEADD(SECOND, - EXTRACT(SECOND FROM CAST('01:15:00' AS TIME)), CURRENT_TIMESTAMP)))
  FROM rdb$database


Fica a dica.
Caso alguém saiba uma solução melhor posta ai.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar