SQL - Problemas con Fechas

 
Vista:

Problemas con Fechas

Publicado por Alvaro Herrera (3 intervenciones) el 05/08/2002 19:53:25
Tengo una tabla donde grabo la fechas en formato MM/DD/YYY, pero el SQL en ocaciones me las graba como dd/mm/yyy. Al momento de hacer consultas me devuelve datos que no son los correctos y tengo que corregir las fechas a mano, para solucionarlo tengo que apagar la maquina. ¿existira algun metodo para solucionarlo o algun Service Pack?
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:Problemas con Fechas

Publicado por JR (7 intervenciones) el 05/08/2002 20:04:18
HOLA.
TE RECOMIENDO QUE TRABAJES LAS FECHAS COMO CADENAS O STRINGS ASI NO TE PREOCUPAS DEL FORMATO.
SALUDOS.

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:Problemas con Fechas

Publicado por alvaro herrera (3 intervenciones) el 05/08/2002 23:04:39
Ok, muchas gracias por tu sugerencia la voy a tomar en cuenta.
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:Problemas con Fechas

Publicado por Islas, Isaías (5072 intervenciones) el 05/08/2002 22:00:50
Hola Alvaro

¿Que tipo de dato es donde guarda sus Fechas?.

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:Problemas con Fechas

Publicado por connors (7 intervenciones) el 05/08/2002 22:32:29
hola, alvaro.

debes de tener en cuenta la configuracion regional que tienes en tu equipo + el foemato en que grabas el dato.
tener en cuenta si trabajas en red la estacion debe de tener la misma conf. regional en que grabas lo datos.
Espero te sirva.
atte.
Connors
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:Problemas con Fechas

Publicado por Alvaro Herrera (3 intervenciones) el 05/08/2002 23:02:34
el tipo de dato es datetime. A la tabla el dato fecha lo grabo por separado por ejemplo:
yo no hago esto: fecha = now esto me devolveria 05/08/2002
si no
month(now) "/" & day(now) & "/" &year(now) para obtener 08/05/2002.
El problema es que por un tiempo trabaja bien, pero en cualquier momento me vuelve a grabar el formato dd/mm/yyyy la configuracion regional de la maquina si tiene el formato mm/dd/yyyy que yo necesito.
Gracias por tu ayuda.
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:Problemas con Fechas

Publicado por EDELRIO (540 intervenciones) el 05/08/2002 23:36:30
Por lo que acaba de comentar me hace suponer que lo esta manejando desde Visual Basic y no desde Sql/Server....

1.- Como dijo el buen amigo Connors cheque su Regional Setting. Mas sin embargo se le paso comentar que si usted esta realizando la conexion entre su aplicacion y sql el ODBC trae una opcion para ocupar o no ocupar el Regional setting de la Pc...

2.- Le recomiendo de ser posible que para que no tenga estos problemas con la fecha, mejor use la constante getdate() de sql/server y no el now de vb. Esto aprovechando que el campo viene como DateTime que es tal y como nos comenta.

3.- Bajo este esquema se le grabara con formato dd-mm-yyyy hh:mm:ss.sss si usted lo necesita en formato dd/mm/yyyy para traerlo a pantallas vb, puede usar desde vb el comando format(Fecha, "dd/mm/yyyy" o si prefiere desde sql/server el comando Convert...

Con esto no debe tener problemas...
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:Problemas con Fechas

Publicado por Islas, Isaías (5072 intervenciones) el 06/08/2002 01:03:05
Hola Alvaro:

Amigo, en verdad, no se complique la vida, lea esto:

Microsoft SQL Server almacena internamente los valores de tipo de datos datetime como enteros de 4 bytes. Los 4 primeros bytes almacenan el número de días antes o después de la fecha base, el 1 de enero de 1900. La fecha base es la fecha de referencia del sistema. Los valores para datetime anteriores al 1 de enero de 1753 no se permiten. Los otros 4 bytes almacenan la hora del día representada como el número de milisegundos después de media noche.

El tipo de datos smalldatetime almacena las fechas y horas del día con menor precisión que datetime. SQL Server almacena los valores smalldatetime como dos enteros de 2 bytes. Los dos primeros bytes almacenan el número de días después del 1 de enero de 1900. Los otros dos, almacenan el número de minutos desde media noche. El intervalo de datos es del 1 de enero de 1900 al 6 de junio de 2079, con precisión de minutos.

Por tanto, su solucion es: SABER utilizar los CAST o CONVERT, DATEPART, DATEADD, DATEDIFF.

Saludos.
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:Problemas con Fechas

Publicado por Jose Luis (10 intervenciones) el 18/03/2003 21:19:16
Todo ese rollo lo conozco y se que es mejor trabajr con fechas julianas pero a veces por la necesidad ni modo como en mi caso necesitamos armar fechas a partir de una cadena y ademas almacenarla en una tabla pero no funciona que hacemos ????
@AnoMesAct contiene '200301' que puede estar pasando ???

UPDATE #t_Avisos set fec_vto = substring(@AnoMesAct,1,4)+'-'+ right('00'+ rtrim(cast(day(c.fec_de_ini) as char(2))) ,2)+'-'+substring(@AnoMesAct,5,2) ,
mon_gas = c.moneda_mant,
mant_aviso = case when c.moneda_mant = '01' then mant_aviso
when c.moneda_mant = '02' then mant_aviso / @t_cambio end
FROM #t_Avisos a, CONDICIONES_DE_CONTRATO c
WHERE a.nro_contrato = c.nro_contrato


Sld

Jose Luis
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