PDA

Ver la Versión Completa : Obtener solo fecha


drykea
21-11-2008, 12:58:18
Hola a tod@s.

¿Alguien sabe como obtener solo la parte de la fecha de un campo DateTime de SQL Server?

Muchas gracias por adelantado

Caro
21-11-2008, 14:06:05
Hola drykea, puedes hacer esta prueba:


Select Convert(varchar, CampoFecha, 3) from Tabla


Saluditos

drykea
21-11-2008, 15:40:15
Muchas gracias por tu respuesta.

Lo he probado y sí que me devuelve la fecha.
¿Pero hay alguna manera de hacerlo en algun tipo Date, para poder comparlo con otra fecha? Sé que podría volver a pasarlo de Varchar a Date, pero si se puede hacer directamente mucho mejor.

Muchas gracias y perdona por insistir.

Caro
21-11-2008, 16:05:13
Lo he probado y sí que me devuelve la fecha.
¿Pero hay alguna manera de hacerlo en algun tipo Date, para poder comparlo con otra fecha? Sé que podría volver a pasarlo de Varchar a Date, pero si se puede hacer directamente mucho mejor.


Hola de nuevo, creo haber leído que solo desde la versión 2008 es donde se tiene los tipos Date y Time. En versiones anteriores estan juntos DateTime, si tienes una versión anterior puedes hacer la comparación:


Query.Sql.Add('Select * From tabla ');
Query.Sql.Add('Where Convert(Varchar,CampoFecha , 3)='+QuotedStr(DateToStr(DateTimePicker.Date));


y va a funcionar, el problema que veo es cuando se quiere hacer un Between, pero en ese caso sera mejor manejarlo como DateTime.

Solo aclarar que se poco de Sql Server y puedo estar equivocada, si no es así seguro que alguien que sepa mas te va confirmar si, si o no.

Saluditos

ContraVeneno
21-11-2008, 16:34:54
Pues yo lo haría muy similar a como lo hace Caro, con solo dos detalles:
El primero, revisaría la ayuda de SQL Server para ver que estilo es el que quiero utilizar. En el ejemplo, caro está utilizando el estilo 3, que tiene formato "dd/mm/yy". En este caso, yo utilizaría el estilo 103 que me da el formato "dd/mm/yyyy". Aunque realmente utilizaría el estilo 112 (ISO) con formato "yyyymmdd". En fin, que se trata de que tu revises para ver que estilo quieres utilizar.

El segundo, es que en lugar de utilizar DateToStr para convertir la fecha en delphi, utilizaría FormatDateTime y le daría el mismo formato que el estilo de Convert en SQL, es decir, si utilizo el estilo 112, utilizaría: "FormatDateTime('yyyymmdd', Fecha)"

Saludos.