Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   Funcion SPLIT en Sql Server - AYUDA POR FAVOR (http://www.forosdelweb.com/f21/funcion-split-sql-server-ayuda-por-favor-298963/)

diegus 17/05/2005 10:39

Funcion SPLIT en Sql Server - AYUDA POR FAVOR
 
Buenas a todos es mi primer mensaje en este foro y necesito una ayuda urgente, tengo una tabla con 200.000 registros. Tengo un campo fecha (pero no es del tipo date sino varchar) que tiene datos de esta forma 03/03/1969 y necesito convertir ese campo en 03031969 sin las barras. Me comentaron de la funcion SPLIT pero quiero hacerlo desde el query analyzer ya que intente hacerlo con un script ASP pero me da error de TIMEOUT del IIS y solo me actualiza de a 150 registros por vez. Alguien tiene idea de como convertir este script de ASP en sentencia SQL para aplicarla desde el query analyzer?
Muchisimas gracias amigos.!!!!

V_SQL="select * from fdesee"
set V_RS = server.CreateObject("ADODB.Recordset")
set V_RS2 = server.CreateObject("ADODB.Recordset")
V_RS.Open V_SQL,CONN,3

do until V_RS.EOF

usuario=split(v_rs("dtnasc"),"/",-1,1)
password=usuario(0)&usuario(1)&usuario(2)
id=v_rs("cpf")

v_sql2="update fdesee set dtnasc ='"& password &"' where cpf ='"& id & "'"
V_RS2.Open V_SQL2,CONN,3

v_rs.MoveNext

loop

V_RS.Close

set V_RS=nothing

xcars 17/05/2005 11:35

con este codigo estas quitandole las barras a la fecha
Código:

declare @fecha char(10)
set @fecha='03/03/1969'
SELECT substring(@fecha,0,3)+substring(@fecha,4,2)+substring(@fecha,7,4)

el update seria algo asi

Código:

update tabla set
tabla_fecha=SELECT substring(tabla_fecha,0,3)+substring(tabla_fecha,4,2)+substring(tabla_fecha,7,4)

probalo y me avisas

diegus 17/05/2005 11:51

estimado xcars. cuando ejecuto la primer parte del codigo, me retorna NULL eso.. puedes ayudarme???? gracias!!!

xcars 17/05/2005 11:54

Cita:

Iniciado por diegus
estimado xcars. cuando ejecuto la primer parte del codigo, me retorna NULL eso.. puedes ayudarme???? gracias!!!

Código:

declare @fecha char(10)
set @fecha='03/03/1969'
SELECT substring(@fecha,0,3)+substring(@fecha,4,2)+substring(@fecha,7,4)

en este codigo te devuelve null??? si es asi que raro, pk lo acabo de copiar, lo pegue en mi query analizer y me funciono?? has cambiado algo??

ah por cierto, corregi el espacio que hay en el ultimo substring, nose porque se lo pone aki en el foro

diegus 17/05/2005 11:56

declare @fecha char(10)
set @fecha='03/03/1969'
SELECT substring(@fecha,0,3)+substring(@fecha,4,2)+substr ing(@fecha,7,4)

que es lo que te retorna esto? solo este codigo pones en el query analyzer?

xcars 17/05/2005 11:58

sip, pegalo, marcalo y ejecutalo y te devolvera la fecha tal y como quieres,
ese codigo es para que pruebes lo de la fecha antes de hacer el update

si funciona eso, ya solo es de cambiarlo en el update por campos y listo

diegus 17/05/2005 13:02

estimado amigo, lamentablemente sigo sin poder utilizar esta solucion que me has dado. me sigue retornando null a que se puede deber? utilizo sql server 2000 tiene algo que ver eso? estoy trabado con este tema. gracias!!!

xcars 17/05/2005 13:05

Cita:

Iniciado por diegus
estimado amigo, lamentablemente sigo sin poder utilizar esta solucion que me has dado. me sigue retornando null a que se puede deber? utilizo sql server 2000 tiene algo que ver eso? estoy trabado con este tema. gracias!!!

pues fijate que yo tengo sql2000 tambien y el codigo funciona muy bien?? que es lo que te esta fallando??
si quieres agregame a tu msn y vemos que pasa

[email protected]

jackiff 17/09/2009 17:46

Respuesta: Funcion SPLIT en Sql Server - AYUDA POR FAVOR
 
hola

puedes hacer lo siguiente:

SELECT CAST(DATEPART(DAY,GETDATE())AS VARCHAR(2))+CAST(DATEPART(MONTH,GETDATE())AS VARCHAR(2))+CAST(DATEPART(YEAR,GETDATE())AS VARCHAR(5))
lo que estas haciendo con este codigo es como si formateras la fecha y la ordenas como tu requieras.


La zona horaria es GMT -6. Ahora son las 20:17.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.