SQL - Formatos de fechas

 
Vista:

Formatos de fechas

Publicado por JoseM (23 intervenciones) el 14/02/2007 17:23:44
Buenas, ya he estado mirando antes como poder solucionar el problema pero no lo logro. pongo un código sencillo que no logro resolver:

SET LANGUAGE spanish (Esto lo he añadido de forma opcional por hacer pruebas)
SET DATEFORMAT dmy (Mi intención es que el formato sea ddMMyyyy)

DECLARE @fecha datetime, @fecha2 datetime

SET @fecha=DATEADD(dd,-1,getdate())
print @fecha

set @fecha2 = '13-02-2007'
print @fecha2

Y el resultado es el siguiente, haga lo que haga (aunque cambie el DATAFORMAT sale lo mismo:

Changed language setting to Español.
Feb 13 2007 5:29PM
Feb 13 2007 12:00AM

Alguien me puede ayudar para conseguir sacar el formato ddMyyyy???????

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Formatos de fechas

Publicado por Isaías (5072 intervenciones) el 14/02/2007 18:35:31
No es muy elegante, pero funciona:

SELECT REPLACE(CONVERT(CHAR(10), GETDATE(), 104), '.', '')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formatos de fechas

Publicado por JoseM (23 intervenciones) el 15/02/2007 08:01:40
Muchísimas gracias isaías, veo que funciona.
Estudiaré este método que empleas ya que lo que me conviene es que saque el formato: dd/mm/yyyy en vez de ddmmyyyy. Necesito comparar ese resultado con los valores de una tabla.

Gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formatos de fechas

Publicado por JoseM (23 intervenciones) el 15/02/2007 10:34:19
Ya dí con la solución, ya puedo comparar un campo de fecha

se declara @FECHA como smalldatetime
@FECHA = getdate() -> La coge con formato inglés

CAMPOFECHA está con formato español ddMMyyyy
Por lo tanto para hacer la comparativa,.....

CAMPOFECHA = convert(smalldatetime, convert(varchar, @FECHA, 112))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formatos de fechas

Publicado por Isaías (5072 intervenciones) el 15/02/2007 17:37:14
Jose

¿Que tipo de dato es CAMPOFECHA?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formatos de fechas

Publicado por JoseM (23 intervenciones) el 15/02/2007 17:43:39
Es el campo fecha de una tabla. Digamos q eso es justo cuando lo meto en la claúsula WHERE para hacer la comparativa:

DECLARE @FECHA smalldatetime
SET @FECHA = GETDATE()

SELECT * FROM TABLA1 T
WHERE
T.CAMPOFECHA = convert(smalldatetime, convert(varchar, @FECHA, 112))

Esto funcionaría correctamente, al menos en mi caso. Espero que a tí tb te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formatos de fechas

Publicado por Isaías (5072 intervenciones) el 16/02/2007 01:52:17
JoseM

Si realizas dicha conversion con la fecha del sistema (GETDATE()), tal vez nunca se cumpla la IGUALDAD con CAMPOFECHA, ya que el formato que da es:

2007-02-15 00:00:00

Tendria que empatar la comparacion EXACTAMENTE con las HORAS, MINUTOS y SEGUNDOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formatos de fechas

Publicado por JoseM (23 intervenciones) el 16/02/2007 08:46:44
Me funciona perfectamente,... no te puedo dar razones técnicas pero a base de pruebas todo me sale OK.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar