Además de las variables de contexto:

https://firebird21.wordpress.com/2013/03/18/entendiendo-a-las-variables-de-contexto/

el Firebird dispone de cuatro variables que están relacionadas con las fechas y las horas y que puedes usar en cualquier lugar donde éstas sean válidas.

A estas variables se las llama de “fecha literal”. La palabra “literal” significa que a la fecha se la denomina por su nombre en letras, no por un número.

‘NOW’

Es de tipo TIMESTAMP y devuelve la fecha y la hora del Servidor en el momento que empezó la operación.

‘TODAY’

Es de tipo DATE y devuelve la fecha del Servidor en el momento que empezó la operación. Eso implica que si pasó la medianoche el valor de ‘TODAY’ no cambiará.

‘YESTERDAY’

Es de tipo DATE y devuelve la fecha del Servidor en el momento que empezó la operación menos un día. O sea, el día anterior. Si se pasa la medianoche el valor de ‘YESTERDAY’ no cambiará.

‘TOMORROW’

Es de tipo DATE y devuelve la fecha del Servidor en el momento que empezó la operación más un día. O sea, el día siguiente. Si se pasa la medianoche su valor no cambiará.

AVISO:

Hay dos cosas muy importantes que debes recordar si usarás literales de fechas:

  1. El valor devuelto siempre corresponde al Servidor, nunca al Cliente. Por ejemplo ‘NOW’ devuelve la fecha y la hora que tiene la computadora donde está instalado el Servidor, no la fecha ni la hora de la computadora donde está instalado el Cliente
  2. Todos los valores devueltos corresponden al momento en que se inició la operación, no a los valores actuales. Por ejemplo, si una transacción se inició el 3 de febrero de 2014 a las 21:28, ese será el valor devuelto por el literal de fecha ‘NOW’ durante todo el transcurso de esa transacción, aunque esa transacción dure 15 minutos ‘NOW’ siempre devolverá que la hora es 21:28

Ejemplos:

SELECT CAST('NOW' AS TIMESTAMP) FROM RDB$DATABASE

UPDATE FACTURAS SET FAC_FECVEN = 'TOMORROW' WHERE FAC_IDENTI = 9

En el primer ejemplo tuvimos que usar la función CAST() para convertir la fecha literal en una constante de tipo TIMESTAMP.

En el segundo ejemplo no fue necesario usar la función CAST() para establecer que la fecha de vencimiento de la Factura cuyo Identificador es 9 será mañana.

Artículos relacionados:

Entendiendo a las variables de contexto

El índice del blog Firebird21

Anuncios