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

Formato de fecha

Estas en el tema de Formato de fecha en el foro de SQL Server en Foros del Web. Muy buenas, El problema que tengo es que tengo un campo de tipo texto con la fecha escrita de la siguiente manera: sábado 24 de ...
  #1 (permalink)  
Antiguo 18/01/2010, 04:57
 
Fecha de Ingreso: septiembre-2008
Mensajes: 9
Antigüedad: 15 años, 7 meses
Puntos: 0
Formato de fecha

Muy buenas,

El problema que tengo es que tengo un campo de tipo texto con la fecha escrita de la siguiente manera:
sábado 24 de octubre de 2009
miércoles 2 de diciembre de 2009
Lo que necesito es sacar mediante una select la fecha en formato datetime.

No se si habrá alguna manera ya que no lo he logrado con el convert.

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 18/01/2010, 07:55
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Formato de fecha

Una forma simple y rápida puede ser usar la funcion REPLACE 12 veces (por cada mes).
Los dias de semana no te sirven podrias tomar la fecha desde el primer numero.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 18/01/2010, 13:59
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Formato de fecha

Utiliza la siguiente sintaxis, asi te ahorras el replace

Código SQL:
Ver original
  1. SELECT CONVERT(VARCHAR,nombre_campo,106)fecha FROM tabla (WHERE condicion)

obtendras como resultado lo siguiente

18 Ene 2009
  #4 (permalink)  
Antiguo 18/01/2010, 14:28
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Formato de fecha

No creo que esa sea la solución. Eso sirve si tu tienes el valor del tipo datetime y lo conviertes a varchar, y el amigo quiere lo inverso.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 18/01/2010, 16:07
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Formato de fecha

De que debe utilizar el REPLACE, no le queda otro camino.
  #6 (permalink)  
Antiguo 19/01/2010, 05:37
 
Fecha de Ingreso: septiembre-2008
Mensajes: 9
Antigüedad: 15 años, 7 meses
Puntos: 0
solucion: Formato de fecha

Muchas gracias, me habéis sido de gran ayuda.

Al final no me ha quedado otra que utilizar el REPLACE.

La solución es la siguiente:

Código SQL:
Ver original
  1. CREATE TABLE VisitasUnicasWeb
  2. (FechaGoogle VARCHAR(70),
  3. VisitasGoogle VARCHAR(6),
  4. FormatoFecha datetime,
  5. Visitas INT)
  6.  
  7. UPDATE VisitasUnicasWeb
  8. SET FormatoFecha = (CONVERT(datetime,
  9.                       REPLACE (REPLACE (REPLACE (REPLACE (REPLACE( REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (FechaGoogle,
  10.                        ' de enero de ', '/01/'), ' de febrero de ', '/02/'), ' de marzo de ', '/03/'), ' de abril de ', '/04/'), ' de mayo de ', '/05/'), ' de junio de ', '/06/'), ' de julio de ',
  11.                       '/07/'), ' de agosto de ', '/08/'), ' de septiembre de ', '/09/'), ' de octubre de ', '/10/'), ' de noviembre de ', '/11/'), ' de diciembre de ', '/12/'), 'lunes ', ''),
  12.                       'martes ', ''), 'miércoles ', ''), 'jueves ', ''), 'viernes ', ''), 'sábado ', ''), 'domingo ', ''), 103)),
  13.     Visitas = (CAST(REPLACE(VisitasGoogle, '.', '') AS INT))

En FechaGoogle y VisitasGoogle he metido los datos que me ha dado GoogleAnalytics y en FormatoFecha y Visitas el resultado.

Código:
jueves 10 de diciembre de 2009	5.581	10/12/2009 0:00:00	5581
viernes 11 de diciembre de 2009	4.776	11/12/2009 0:00:00	4776
sábado 12 de diciembre de 2009	3.963	12/12/2009 0:00:00	3963
domingo 13 de diciembre de 2009	4.414	13/12/2009 0:00:00	4414
lunes 14 de diciembre de 2009	6.375	14/12/2009 0:00:00	6375
martes 15 de diciembre de 2009	6.128	15/12/2009 0:00:00	6128
En las visitas también he tenido que utilizar un REPLACE porque me venía como 2.325 y no me dejaba convertirlo a integer.

Un saludo y repito, muchas gracias.

Última edición por cojobero; 19/01/2010 a las 06:04

Etiquetas: formato, fechas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:12.