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)
-   -   cambiar de FECHA a CADENA (https://www.clubdelphi.com/foros/showthread.php?t=34859)

selman 24-08-2006 00:53:09

cambiar de FECHA a CADENA
 
Es una base de datos en Interbase

Necesito cambiar el formato de un campo DATE a una CADENA (para poderlo formatear) en una sentencia SQL para que se muestre con el formato deseado por el cliente.
Actualmente se muestra porejemplo
22/08/2006 12:00:00 a.m.
Como hacerlo en SQL de Interbase.

FSentencia := 'SELECT FECHA_ALTA FROM USUARIOS'

El campo FECHA_ALTA es de tipo DateTime, esto hace que cuando se muestra la fecha le acompaña la hora y no quiero que se muestre la hora, que sea en el formato 'dd/mm/yyyy'

Saludos Selman.

Casimiro Noteví 24-08-2006 01:11:44

Pues usa, por ejemplo: FormatDateTime

Con la máscara que quieras.


Código:

ShowMessage(  FormatDateTime('dd/mm/yyyy',FSentencia) );

roman 24-08-2006 01:20:42

Pero esto es desde Delphi ¿no? ¿Cómo se haría con una sentencia SQL en IB?

// Saludos

paty_rlopez 24-08-2006 01:23:21

También puedes utilizar la función CAST del SQL
FSentencia :=
Código:

'SELECT CAST(FECHA_ALTA as Date) FROM USUARIOS'

Casimiro Noteví 24-08-2006 02:16:15

Cita:

Empezado por roman
Pero esto es desde Delphi ¿no? ¿Cómo se haría con una sentencia SQL en IB?

// Saludos

Perdón, a estas horas mejor me voy a la cama que el despertador suena a las 6 :o

roman 24-08-2006 02:19:46

¡Pero tu respuesta fue hace una hora! :eek: ¿Te levantaste al baño y no pudiste resistir la tentación de ver qué había en el Club? :D

// Saludos

Casimiro Noteví 24-08-2006 02:36:35

Cita:

Empezado por roman
¡Pero tu respuesta fue hace una hora! :eek: ¿Te levantaste al baño y no pudiste resistir la tentación de ver qué había en el Club? :D

// Saludos

jajaja, sí, es que estaba preparando la comida para mañana... y fíjate la hora que es, ya sí que me voy a dormir, que mientras me ducho y me duermo, al final apenas serán 3 horas de descanso :(

selman 24-08-2006 17:53:51

ya use CAST y sigue igual
 
ya use el CAST Y se sigue mostrando igual, la fecha acompañada de la hora, no se si es porque es una aplicacion aspx.net, si me pudiran dar otra manera de formatear la fecha.

Saludos Selman.

paty_rlopez 24-08-2006 18:06:33

¿Ejecutaste la sentencia en el Interbase directamente y te siguió mostrando la fecha y la hora? o ¿solo te aparece cuando lo muestras en tu aplicación?

selman 24-08-2006 19:12:07

Si en Interbase ya la ejecute
 
Si en Interbase se muestra bien solamente la fecha dd/mm/yyyy pero en la aplicacion se muestra con la hora, por eso queria convertir la fecha en un string y darle formato para mostrarla bien en el DataGrid.

Selman.

paty_rlopez 24-08-2006 19:59:10

Intenta con eso
 
No se como lo llamas pero si lo que quieres es que te regrese una cadena usa la misma instrucción del CAST pero con en ves de DATE dile que lo quieres en VARCHAR(24)

Código SQL [-]
'SELECT CAST(FECHA_ALTA as VarChar(24)) FROM USUARIOS'




y con eso te regresa la cadena
mis conocimientos hasta ahí me permiten ayudar

me dices como lo solucionaste

selman 24-08-2006 20:10:29

Sigue igual, gracias Paty.
 
Paty, ya probé la sentencia con el CAST a Varchar(24) y sigue saliendo la fecha acompañada de la hora. Yo he programado para Delphi de 32 bits y esto nunca me habia pasado, pero en las aplicaciones para .NET es un problema el formatear las columnas.
De todas maneras muchas gracias.

Selman.

paty_rlopez 24-08-2006 20:16:18

Una pregunta ¿que componentes estas utilizando?

selman 26-08-2006 00:33:56

Componentes que estoy usando.
 
Como ya te comente es una palicación aspx.net y la estoy desarrollando en Delphi 2005. El resultado de la sentencia SQL se la paso a un DataGrid.
Te pongo el código para que lo veas.

FSentencia := 'SELECT ID_USUARIO, CAST(FECHA_ALTA as VarChar(32)) FECHA, NOMBRE, APELLIDO_PATERNO, APELLIDO_MATERNO, DIRECCION, ESTADO FROM USUARIOS';
with BdpC_BuscaVisitas do
begin
Connection.Open;
CommandText := FSentencia ;
DataGrid1.DataSource := ExecuteReader;
DataGrid1.DataBind;
Connection.Close;
end;


Saludos, Selman.

Lepe 26-08-2006 00:57:48

No sé si esto te servirá, estoy suponiendo que el año es en 4 dígitos:

Código SQL [-]
SELECT substring(CAST(FECHA_ALTA as VarChar(24)) from 1 for 10) FROM USUARIOS

Saludos


La franja horaria es GMT +2. Ahora son las 03:48:17.

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