Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

tipo de datos datetime SQL

Estas en el tema de tipo de datos datetime SQL en el foro de Bases de Datos General en Foros del Web. Huolass,tengo un gran problema, yo creo un procedimiento almacenado (SQL) que recibe dos fechas y dos cadenas, si yo declaro los parametros que recibe el ...
  #1 (permalink)  
Antiguo 16/03/2005, 11:56
 
Fecha de Ingreso: junio-2003
Mensajes: 203
Antigüedad: 20 años, 11 meses
Puntos: 0
tipo de datos datetime SQL

Huolass,tengo un gran problema,
yo creo un procedimiento almacenado (SQL) que recibe dos fechas y dos cadenas, si yo declaro los parametros que recibe el procedimiento, como datetime(que es como los tengo en mi base de datos, el procedimiento, me lee , las fechas alreves, me explico, yo en mi base de datos tengo una fecha 03/01/2005 , y cuando me pide el parametro, tengo que meterle el valor, alreves "2005-03-01" para que no me de un fallo de tipo de datos , a que se debe esto???,porque de esta forma no me funciona con mi proyecto en visual, ya que un parametro date en visual , me almacena la fecha al derecho, y si lo tengo que enviar, me da error.

No se si me he explicado bien, pero es que un poco lio
gracias saludoss
  #2 (permalink)  
Antiguo 16/03/2005, 12:12
Avatar de sir_joshua  
Fecha de Ingreso: diciembre-2004
Mensajes: 411
Antigüedad: 19 años, 4 meses
Puntos: 0
mmmm no se porke ocurre eso, lo que si eske puedes utilizar el comando TO_CHAR.... cheka el siguiente link:

http://platinum.intersystems.com/sqr/tochar.html

salu2.
  #3 (permalink)  
Antiguo 16/03/2005, 14:58
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Creeme que no hay nada como usar formato ANSI para fechas, te salva de problemas cuando no usas el formato americano.

En tu caso me imagino que tienes problemas como que los 02/05/2000 se convierten en 05/02/2005 debido a problemas con los diferentes formatos de fechas existentes. En el caso de fechas como 15/01/2000 algunos programas truenan, debido a que insisten en suponer que el "15" es el mes y el "01" el día.

ANSI utiliza un formato sin ambiguedades, además de que es muy útil para hacer los ordenamientos, pues maneja el formato aaaa-mm-dd, así nunca tendrás problemas para interpretar que es que.

En el trabajo estoy empezando a usar ese formato directamente en mis GUI, eso elimina que el usuario se pregunte en que formato trabaja el sistema (y aprender a base de prueba y error). Si no lo quieres manejar así entonces tendrías que manejar una fecha de "display" en el GUI y una fecha de trabajo para la DB.

Mi recomendacion es que SIEMPRE uses formato ANSI para con la DB.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche

Última edición por Mithrandir; 16/03/2005 a las 14:59
  #4 (permalink)  
Antiguo 16/03/2005, 19:15
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 3 meses
Puntos: 6
Mithrandir, en algo así ya pensé yo, por librarse de líos con el formato fecha. Pero una duda: ¿cuando dices en ANSI a qué te refieres exactamente? ¿Si estás trabajando con SQL Server, te refieres a ponerlas en modo texto (como si fuera una cadena de texto normal)?

Saludos
  #5 (permalink)  
Antiguo 17/03/2005, 13:38
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 5 meses
Puntos: 0
Ahí va un link (que me parece muy interesante) donde explican el manejo de fechas para SQL Server.

http://www.microsoft.com/spanish/msd...ces/art157.asp

Espero que os sirva.
Salu2.
  #6 (permalink)  
Antiguo 17/03/2005, 15:02
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cita:
Iniciado por un_tio
Mithrandir, en algo así ya pensé yo, por librarse de líos con el formato fecha. Pero una duda: ¿cuando dices en ANSI a qué te refieres exactamente?
El formato aaaa-mm-dd que comenté es el formato ANSI
Cita:
¿Si estás trabajando con SQL Server, te refieres a ponerlas en modo texto (como si fuera una cadena de texto normal)?
Si, de esa manera trabajas las fechas:

CREATE TABLE #tabla (fecha DATETIME)
GO
INSERT INTO #tabla VALUES (getdate())
INSERT INTO #tabla VALUES ('2000-12-01')

SELECT * FROM #tabla

SELECT * FROM #tabla
WHERE fecha = '2000-12-01'
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 18/03/2005, 05:54
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 5 meses
Puntos: 0
También:
SELECT * FROM #tabla
WHERE fecha = '20001201'
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:14.