PDA

Ver la Versión Completa : cambiar de FECHA a CADENA


selman
24-08-2006, 00:53:09
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 Notevi
24-08-2006, 01:11:44
Pues usa, por ejemplo: FormatDateTime

Con la máscara que quieras.



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 := 'SELECT CAST(FECHA_ALTA as Date) FROM USUARIOS'

Casimiro Notevi
24-08-2006, 02:16:15
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 Notevi
24-08-2006, 02:36:35
¡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 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 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
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 [-] (http://www.clubdelphi.com/foros/#)
'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
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
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:


SELECT substring(CAST(FECHA_ALTA as VarChar(24)) from 1 for 10) FROM USUARIOS

Saludos