En la Rocha se soportan constantes del tipo fecha o fecha-hora con formato ANSI/ISO (AAAA-MM-DD HH:MM:SS).
Tecnicamente (Sintáxis):
<date>::=
[0-9]{1,4}"/"[0-9]{1,2}"/"[0-9]{1,2}
| [0-9]{1,4}"."[0-9]{1,2}"."[0-9]{1,2}
| [0-9]{1,4}"-"[0-9]{1,2}"-"[0-9]{1,2}
<hms>::=
[0-9]{1,2}[ap]
| [0-9]{1,2}":"[0-9]{1,2}[ap]?
| [0-9]{1,2}":"[0-9]{1,2}":"[0-9]{1,2}[ap]?
<constant> ::=
"#"<date>"#"
| "#"<date> <hms>"#"
| "#"<hms>"#"
Funcionalmente
Se pueden utilizar esas constantes en las reglas, eventos, propiedades, etc (todo lugar donde se utilice el parser):
Algunos ejemplos básicos:
&FechaInicial=#2007-01-01#
&FechaHoraInicial=#07-1-1 11:15a#
&HoraInicial=#11a#
Me parece bueno no tener que escribir funciones (CTOD, TTOC) sobre constantes tipo char para lograr una fecha y mucho mejor aun en el caso de una hora o fecha/hora donde suelen ser más complicadas.
¿a partir de cuando? alguna liberación posterior al 6/Marzo/2007.
Notas:
Se aplica el Year Limit para el caso que la constante no incluya los 4 dígitos en el año
En el caso de querer asignar algo como el "lowvalue" lo mejor sigue siendo asignar algo del estilo: &DateX=NullValue(&DateX) porque eventualmente una constante no es soportada por el DBMS. Por ejemplo si asigno #0001-01-01# en SQL no es soportado (la fecha mínima es 01/Enero/1753) por lo cual dará error en ejecución.
Tecnicamente (Sintáxis):
<date>::=
[0-9]{1,4}"/"[0-9]{1,2}"/"[0-9]{1,2}
| [0-9]{1,4}"."[0-9]{1,2}"."[0-9]{1,2}
| [0-9]{1,4}"-"[0-9]{1,2}"-"[0-9]{1,2}
<hms>::=
[0-9]{1,2}[ap]
| [0-9]{1,2}":"[0-9]{1,2}[ap]?
| [0-9]{1,2}":"[0-9]{1,2}":"[0-9]{1,2}[ap]?
<constant> ::=
"#"<date>"#"
| "#"<date> <hms>"#"
| "#"<hms>"#"
Funcionalmente
Se pueden utilizar esas constantes en las reglas, eventos, propiedades, etc (todo lugar donde se utilice el parser):
Algunos ejemplos básicos:
&FechaInicial=#2007-01-01#
&FechaHoraInicial=#07-1-1 11:15a#
&HoraInicial=#11a#
Me parece bueno no tener que escribir funciones (CTOD, TTOC) sobre constantes tipo char para lograr una fecha y mucho mejor aun en el caso de una hora o fecha/hora donde suelen ser más complicadas.
¿a partir de cuando? alguna liberación posterior al 6/Marzo/2007.
Notas:
Se aplica el Year Limit para el caso que la constante no incluya los 4 dígitos en el año
En el caso de querer asignar algo como el "lowvalue" lo mejor sigue siendo asignar algo del estilo: &DateX=NullValue(&DateX) porque eventualmente una constante no es soportada por el DBMS. Por ejemplo si asigno #0001-01-01# en SQL no es soportado (la fecha mínima es 01/Enero/1753) por lo cual dará error en ejecución.
Un comentario relacionado con la Rocha y el manejo de Fechas (relacionado con xml)
ResponderBorrarEstaria bueno que al grabar fechas en archivos XML con las funciones de manejo de XML de Genexus, se utilizara el formato ISO 8601, con el "T" incluido para separar los tiempos de las fechas. De esta forma se lograría mejorar la interoperabilidad de los xml generados.
Mas informacion en http://www.w3.org/TR/NOTE-datetime
Hoy (con la 9.0) lo hacemos a mano.
Un comentario relacionado con la Rocha y el manejo de Fechas (relacionado con xml)
ResponderBorrarEstaria bueno que al grabar fechas en archivos XML con las funciones de manejo de XML de Genexus, se utilizara el formato ISO 8601, con el "T" incluido para separar los tiempos de las fechas. De esta forma se lograría mejorar la interoperabilidad de los xml generados.
Mas informacion en http://www.w3.org/TR/NOTE-datetime
Hoy (con la 9.0) lo hacemos a mano.
Gracias por el link, incluso me acodava que llevaba la T, pero no la podía encontrar.
ResponderBorrarRespecto al tema del formato en el XML, es un tema "ortogonal", sin embargo pega en el palo de otros cambios al respecto (de XML y WServices) asi que seguramente algo de eso saldrá en el futuro. Como siempre: las pelotas que pegan en el palo pueden entrar o salir ;)
Gracias por el link, incluso me acodava que llevaba la T, pero no la podía encontrar.
ResponderBorrarRespecto al tema del formato en el XML, es un tema "ortogonal", sin embargo pega en el palo de otros cambios al respecto (de XML y WServices) asi que seguramente algo de eso saldrá en el futuro. Como siempre: las pelotas que pegan en el palo pueden entrar o salir ;)