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

Problema con fecha en SQL 2005

Estas en el tema de Problema con fecha en SQL 2005 en el foro de SQL Server en Foros del Web. Como estan. Tengo montado un software de replciacion de datos que lo que hace es en tiempo real apenas se modifique o se inserte un ...
  #1 (permalink)  
Antiguo 03/03/2009, 14:48
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Problema con fecha en SQL 2005

Como estan.

Tengo montado un software de replciacion de datos que lo que hace es en tiempo real apenas se modifique o se inserte un dato en la bd origen realiza esta modificación en la destino.

Tanto en las tablas origen como en las destino hay campos fecha pero algunos son tipos date y otros son tipo varchar.

´Lo que tengo que hacer es que independientemente de en que formato venga la fecha e independietne del tipo de campo a donde vaya llegar me la deje en formato AAAA-MM-DD

¿Como puedo hacer esto?


Gracias
  #2 (permalink)  
Antiguo 03/03/2009, 16:59
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Problema con fecha en SQL 2005

Las fechas en SQL SERVER, como en otros motores de bases de datos, NO se guardan con un formato en especifico, se maneja el standar ANSI para su almacenamiento (YYYYMMDD HH:MM:SS, NNN).

En 2008, ya puedes separar fechas de horas, aun asi, lee un poco sobre CAST/CONVERT
  #3 (permalink)  
Antiguo 04/03/2009, 12:18
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Problema con fecha en SQL 2005

Gracias por contestar. Le pido el favor que me ayude a hacer la transformacion


osea la fecha viene aveces de un campo varchar y aveces de campo time pero siempre tiene que quedar en formato AAAA-MM-DD

Lo que supongo que se tiene que hacer es primero convrtirla a date paraestar seguro y luego cambiarle el formato a la fecha pero no se bien como usar cast y convert me peude ayudar con el sql que me permita hacer esto

gracias
  #4 (permalink)  
Antiguo 04/03/2009, 22:26
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Problema con fecha en SQL 2005

Helacer

Para saber si una cadena contiene una fecha valida, existe la funcion ISDATE

SELECT ISDATE('HOLA AMIGO') ' = 0 false
SELECT ISDATE('20080101') ' = 1 true

Si usted consulta su ayuda en linea, podra ver la estructura correcta de la funcion CAST o CONVERT, o bien si consulta a "San Google", seguro la encontrara, aqui le pongo un ejemplo.

SELECT CONVERT(CHAR(5), GETDATE(), 108) '= HH:MM
  #5 (permalink)  
Antiguo 05/03/2009, 12:54
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Problema con fecha en SQL 2005

grcias por contestar una cosita mas

tengo una tabla donde el campo fecha es 20080321:14:19:23 "por ejemplo". Este campo es tipo char de 22.

Necesito si es posible un update que de una me le cambie el formato a la fecha osea algo asi

update tabla set fecha=Nueva fecha where campo1=variable;

debe quedar 2008-03-21:14:19:23

si puedo hacer esto como seria?

ya probe con
select Cast(FECHA as DATETIME) from tbestilos where Estilo=3;

tambien probe con convert pero en ambos me saca errro de convertir char a datetime.




Gracias

Última edición por helacer; 05/03/2009 a las 13:21
  #6 (permalink)  
Antiguo 05/03/2009, 21:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Problema con fecha en SQL 2005

Debes consultar en tu ayuda en linea como se debe especifira el parametro en la funcion CAST o CONVERT
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 06:13.