SQL Server - Problemas con fechas SQL 2000

 
Vista:

Problemas con fechas SQL 2000

Publicado por Fco (3 intervenciones) el 25/04/2006 17:44:42
Hola a todos, tengo problemas con el manejo de fechas en SQL 2000, desde un sistema echo en VB6 hago consultas a informacion utilizando rangos de fechas, pero me invierte el dia por el mes si estoy consultando la informacion de los primeros dias de los cuatro primeros meses, por ejemplo, si quiero ver que se vendio el dia 5 de abril, no me muestra resultados por que me dice que es 4 de mayo (abiamente todavia no hay ventas ese dia) si la misma consulta la corro desde query analizer, la consulta SI me muestra resultados, igualmente si cambio la configuracion regional de los equipos poniendo las fechas en ingles (mm/dd/yyyy) la consulta me la hace correctamente desde VB6, y si desde visual trato de enviarle la fechas en ingles mediante variables(ejemplo:
variablefecha=format(fecha,"mm/dd/yyyy")
select * from table where campofecha=variablefecha)
solo me la respeta si la pc esta configurada con fechas en ingles y no me hace la consulta cuando cambio la configuracion de fechas al español, sin embargo, esto no pasa si trato de consultar fechas que pasan del dia trece independientemente de la configuracion regional del equipo, tambien hice una tabla de prueba en sql ver7 y tampoco tiene problemas con las fechas independientemente de la configuracion regional del equipo, (de echo se que originalmente se trabajo con sql server ver 7.0 y nunca dio este tipo de problemas) alguien me podria decir que puedo hacer para eliminar este problema sin necesidad de cambiar la configuracion regional de los equipos al formato de fechas en ingles ? agradecere sus comentarios gracias!
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 SQL 2000

Publicado por Carolina Angel (5 intervenciones) el 16/05/2006 16:31:35
Este problema yo lo soluciones de la siguiente manera:

primero debes observar como se guardan los datos en la bd CONVERT(DATETIME, '2005-01-20 00:00:00', 102))
cuando guardes el campo fecha este debe ir con el formato es decir si tu base de datos guardar , format(fecha, "yyyy/ mes/dia) y de igual forma cuando la vas a consultar le dices el mismo formateo y listo obtendras siempre los datos que deseas.

la clave esta en analizar como esta en tu base de datos, guardar y consultar de la misma forma.

Cualquier cosa me comentas. Chao
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 SQL 2000

Publicado por Roberto (1 intervención) el 17/05/2006 21:19:46
Hola mira el problema con las fechas las puedes manejar de la siguiente manera

para obtener por ejemplo de alguna tabla que tengas un rango de fechas lo mejor es pasar tu fecha en el formato ANSI yyyyMMdd HH:mm:ss este formato es más generico que el resto ,este formato te perimte inclusive obtener fechas en las cuales tenga horas y minutos diferentes del mismo dia

por ejemplo si tienes un campo fecha del tipo datetime y 2 registros se guardaron de la siguiente forma

2006-05-17 00:00:00
2006-05-17 09:34:23

con la siguiente consulta obtendras dichos registros y no tendras problemas

es un ejemplo

select * from TABLA where convert(varchar(20),fecha,112) = '20060517'

te traera dichos registros ,prueba con esto es eficiente y es independiente del idioma de tu motor de BD.

Por ultimo tienes varias posibilidades , de tu aplicacion cliente puedes enviar la fecha de la siguiente manera como una cadena '17/05/2006' que es lo normal que te devuelve un dtpicker por ejemplo , y luego la convierntes esa fecha a el formato 112

declare @p datetime
set @p = convert(datetime,'17/05/2006')
print convert(varchar,@p,112)

oooooooooooooooo si no, no te hagas tanto problemas desde el aplicactivbo cliente te encargas de converti el string '17/05/2006' a '20060517' y lo mandas asi y solamente la usarias

select * from TABLA where convert(varchar(20),fecha,112) = '20060517'

Espero q te halla ayudado , usa ese formato que no te dara problemas.

Roberto C. Jacinto Chirinos
MCSD.NET - PERU
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 SQL 2000

Publicado por Esteban (1 intervención) el 27/06/2006 04:45:01
Hola!.
Mi asunto es al revés. El dtpicker devuelve solo una fecha y yo quisiera guardar el el sql, fecha y hora es decir un campo smalldatetime.
Al parecer el dtpicker no devuelve la fecha seleccionada más la hora actual
yyyy-mm-dd hh:mm:ss

Como hago para guardar la fecha seleccionada en el dtpicker y la hora de actual.??

Gracias

Esteban
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 SQL 2000

Publicado por Jose (1 intervención) el 26/07/2008 02:41:00
Tengo problemas para guardar fechas en sql, el formato en sql es mm-dd-yyyy y el de VB .Net 2003 es yyyy/mm/dd.
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 SQL 2000

Publicado por Bruno Alcalá (1 intervención) el 31/05/2006 22:33:41
Es fácil, lo que pasa es que SQL usa el estándar ANSI, que es yyyy/mm/dd, si usas cualquiera de las configuraciones españolas o inglesas te crea problemas en otra configuración así que mejor usa esta, si quieres saber más metete aquí ahí yo me saqué la duda, de rato
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 SQL 2000

Publicado por José Aguirre (1 intervención) el 01/06/2006 18:38:34
Hermano, prueba ejecutando desde tu aplicación cliente (la que hiciste en VB 6.0) la siguientes cadena:

"SET DATEFORMAT DMY"

nosé como sea el código en VB para ejecutar TRANSACT SQL, pero prueba en tu Query Analier y verás los resultados.

Suerte.
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