Literales de tipo Date y DateTime en GeneXus

Cuando programamos, ya sea en GeneXus o en cualquier otro lenguaje, es muy común usar literales en el código, para valores conocidos o especiales de la aplicación.

Por ejemplo, si voy a hacer una suma de varios registros, inicializo la variable en cero:
&suma = 0
O si estoy por ejemplo en una transacción y quiero saber si estoy en modo Insert, puedo preguntar
if &Mode = 'INS'
    ...
endif
(nota: es un ejemplo... lo recomendable en este caso es usar el dominio enumerado TrnMode)

En GeneXus hay unos cuantos tipos de datos, pero podríamos decir que los principales son cuatro: números, strings, booleanos y fechas (o fecha-hora para ser más precisos).

Para los tres primeros, es bien sabido como expresar literales, ¿pero para las fechas?

Esta funcionalidad creo que no es muy conocida, pero en GeneXus también se pueden escribir literales de fechas, utilizando el caracter # como delimitador (así como usamos las comillas simples o dobles para los strings).

Así por ejemplo, las siguientes expresiones son válidas:
&date = #2013-06-13#
&dateTime = #2013-06-13 06:23p#
Por más información, pueden ver la documentación oficial en el Wiki.

Esto en sí no parece tener demasiadas ventajas con respecto a usar las funciones YMDtoD y YMDHMStoT, pero hay un caso donde sí en necesario usarlos: cuando queremos hacer un call dinámico a un objeto SD, que recibe una fecha por parámetro. Por ejemplo:
&callObject = "sd:MiObjetoSD?#2013-06-13#"
call(&callObject)
En todo caso, es una herramienta más de la que disponemos a la hora de escribir nuestras aplicaciones en GeneXus.

Comentarios

  1. Win Up To $4000 Welcome Bonus | Woori Casino
    Claim Win 우리카지노 Up To 퍼스트카지노 $4000 Welcome Bonus. Click the appropriate button, choose your bonus from 더킹카지노 here or choose a bonus option that allows you to receive the

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Comando "do case" en GeneXus

No hemos cambiado nada