Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Convertir Date en String en un COMPUTED BY (https://www.clubdelphi.com/foros/showthread.php?t=82027)

Edchar 17-01-2013 02:13:26

Convertir Date en String en un COMPUTED BY
 
Hola estimados amigos, necesito su ayuda para crear el siguiente campo COMPUTED BY pero que mediante el campo fecha_cie extraiga el mes y el año pero que el resultado no sea numero sino texto.

Por ejemplo la fecha_cie seria 25/01/2013 así que el resultado en el campo COMPUTED BY debería de que dar así Enero-2013

El código que tengo es el siguiente pero el resultado es 01-2013

Código SQL [-]
CREATE TABLE TBL_CieCja (fecha_cie Date DEFAULT CURRENT_DATE NOT NULL, name DOM_FIRST_NAME,
                         mescont COMPUTED BY (extract(month from fecha_cie)||'-'||extract(year from fecha_cie)))

¿Como puedo hacer lo que quiero?
Saludos y muchas gracias

Al González 17-01-2013 02:27:13

¿Por qué deseas hacer eso a nivel de Firebird?

En Delphi solamente tendrías que asignar el siguiente formato a la propiedad DisplayFormat del campo fecha_cie: mmmm-yyyy.

Saludos. :)

Edchar 17-01-2013 02:47:13

Muchas Gracias Al González por tu ayuda

Si entiendo que puedo crear un campo varchar que me permita contener el texto 'Enero-2013'
y que a nivel del sistema puedo pasar el texto 'Enero-2013' a dicho campo

Pero como ya tengo un campo fecha en la base de datos entonces deseo tener un campo de texto para el mes y año y que a nivel de la base de datos me haga eso.

Gracias y saludos

Al González 17-01-2013 04:47:10

Cita:

Empezado por Edchar (Mensaje 453554)
Si entiendo que puedo crear un campo varchar [...]

¿Crear un campo VarChar? :confused: Mmmm...yo no mencioné nada sobre eso.

Cita:

Empezado por Edchar (Mensaje 453554)
[...] ya tengo un campo fecha en la base de datos entonces deseo tener un campo de texto para el mes y año [...]

Es a lo que me referí anteriormente. Si ya tienes el campo, ¿para qué crear otro? :)

Cita:

Empezado por Edchar (Mensaje 453554)
[...] que a nivel de la base de datos me haga eso.

Vuelvo a preguntar: ¿Por qué deseas hacer eso a nivel de Firebird? Si sólo es para cuestiones de presentación en el lado cliente, no veo por qué evitar el uso de DisplayFormat, que para eso es esa propiedad. ^\||/

Tal vez si nos explicas un poco más pueda yo comprender lo que buscas realmente.

Saludos.

Edchar 17-01-2013 05:31:32

Bueno el asunto es que me parece que es un asunto de presentación pues me parece que puedo pasar a un Grid o Grilla los datos tal cual mediante un select o una vista así tendré una columna en dicha grilla en la que en vez que me presente la fecha completa me presente la que tiene solo el mes y el año.

Creo que es un asunto de facilitar la presentación de ciertos datos sin que yo tenga que manipularlos al nivel del programa.

Gracias.

Al González 17-01-2013 06:07:06

Cita:

Empezado por Edchar (Mensaje 453557)
[...] mediante un select o una vista [...] Creo que es un asunto de facilitar la presentación de ciertos datos sin que yo tenga que manipularlos al nivel del programa.

En ese caso estarás pidiéndole al servidor de base de datos que realice tareas que son competencia del programa: como la presentación. He visto con mucha frecuencia esta mala práctica de meter en la base de datos todo tipo de código. :(

Los servidores de bases de datos tienen un ámbito de trabajo muy particular. Si se les empieza a cargar con cuestiones que son más bien de otras capas de la aplicación, el trabajo que sí deben hacer (servir datos) se ve comprometido.

De todas formas, aún puedes usar una expresión con la que, dentro de un Select, obtengas el nombre del mes dando su número, esto mediante un Case.

Edchar 17-01-2013 18:27:01

Sabes este punto que me estas mencionando es importante y en ese caso lo manejare como tu me dices y en ese caso mas bien a la hora de introducir los datos voy a hacer lo que tu me dices.

Muchas Gracias por tu ayuda pues estoy aprendiendo.

Saludos


La franja horaria es GMT +2. Ahora son las 05:37:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi