SQL Server - AYUDA PORFA URGENTE SQL SRV 2005

   
Vista:

AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 04/12/2009 21:44:28
HOLA CHIKILLOS
NECESITO AYUDA URGENTE

necesito mediante un trigger o un procedimiento de almacenado
tomar un campo con '20091204' transformarlo a '2009-12-04'
me explico necesito que un campo varchar de la tabla poderlo alamacenad en otro campo datetime
necesito que al crear un insert (se gatille el disparador) y haga este cambio automaticamente
pero nose como transformar de este varchar a datetime porfa ayuda

tengo q cambiar de aaaammdd a aaaa-mm-dd
necesito agregar esos guines

esto es a grandes rasgos
porfaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
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
Imágen de perfil de roger

RE:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por roger (173 intervenciones) el 04/12/2009 21:47:15
eso texto que dices se puede transformar facilmente a datetime
cast( '20091204' as Datetime), en este caso no tienes problemas con el formato, si como dices, lo vas a guardar en un campo datetime de otra tabla, no vas a tener ningun inconveniente
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 04/12/2009 21:49:49
y como tomo el campo de la tabla como parametro
y almaceno en la otra?

gracias por la respuesta men
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
Imágen de perfil de Isaias

RE:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por Isaias (3186 intervenciones) el 04/12/2009 22:37:03
Con el permiso

Todos los datos DATETIME que se envian a la base de datos deben ser en formato ANSI

yyyymmdd hh: mm: ss, nnn
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 04/12/2009 22:44:52
men si insertar eso se me cae la query

tener en cuenta q lo explique a grandes rasgos
el programa contempla mas de 40 tablas 2 millones de reguistros

usando un programa llamado ssis

.... :p
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 04/12/2009 23:43:09
create
TRIGGER holi_hola

on
TbltempD33

after
insert

as

declare
@a varchar;

BEGIN

set
nocount on;

select
@a =(select tmpFechaproceso

from TbltempD33

where id=(select max(id)from tbltempd33));

update
TbltempD33

set FechaProceso=(cast(@a

as datetime

)

)

where
id= (select max(id)from tbltempd33);

END
;

***** el problema es que me dice que no se puede convertir una cadena de caracteres a datetime ***

alguna idea porfavor
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
Imágen de perfil de roger

RE:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por roger (173 intervenciones) el 04/12/2009 23:49:21
posiblemente el valor que esta llegando como parametro no tiene un formato valido para hacer la conversion a datetime, pero te aseguro 100% que un cast a datetime de una fecha que tenga formato ANSI no te va a dar error, tendrias que revisar ese dato que esta entrando
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 04/12/2009 23:50:37
tu dices algo asi como imprimir lo que esta ingresandoce?
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
Imágen de perfil de roger

RE:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por roger (173 intervenciones) el 04/12/2009 23:51:17
me refiero al dato que te trae
select
@a =(select tmpFechaproceso
from TbltempD33
where id=(select max(id)from tbltempd33));

el valor con el que queda @a, siempre sera un valor de fecha valido???, con el formato valido???
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 05/12/2009 00:03:55
create
TRIGGER holi_hola

on
TbltempD33

after
insert

as

declare
@a varchar(10);

BEGIN

set
nocount on;

select
@a =(select tmpFechaproceso

from tbltempd33

where id=(select max(id)from tbltempd33));

update
TbltempD33

set
Fechaproceso =(cast(@a as datetime ))
- Ocultar texto citado -

where
id= (select max(id)from tbltempd33);

END

**** :D:d:D

al fin ahi esta la soluccion me salio :D,
si alguien le sirve bakan

muchas gracias chikos a los q ayudaron

si ven como mejorar el cod habisen ya que es para 2 millones de registros a la vez
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
Imágen de perfil de roger

RE:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por roger (173 intervenciones) el 05/12/2009 00:28:48
no te funciona asi???

update TbltempD33
set Fechaproceso =(cast(tmpFechaproceso as datetime))
where id = (select max(id)from tbltempd33));
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por Sago!! (11 intervenciones) el 08/12/2009 17:55:53
Bueno si eso es una solucion, pero yo no utilizaria el Cast sino el Convert.

Haria algo como Convert(datetime,@Varfecha,113)

con eso tendrias mas control ya que el ultimo parametro es el que te dice el tipo de conversion en este caso 113 es el que tu quieres...

Igual no se el resto de tu query pero para ahorrar memoria yo haria el Cast directamente sobre la fecha asi eliminarias una Variable...

pero bueno ese soy yo ...

Sago!!!
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 08/12/2009 17:59:13
muchas gracias amigo lo vere
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:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por alejandro (17 intervenciones) el 09/12/2009 17:34:32
estimados:
tengo la siguiente tabla, y necesito un procedimiento de almacenado que recorra toda la tabla
insertando en "FechaProceso" un campo datetime el cual se genera a travez de "tmpFechaproceso" el cual es un varchar que se hace un cast y queda en datetime
necesito tomar ese datetime e insertarlo en el campo fechaproceso esto se deve hacer 1 sola vez y recorrer todas las columnas el procedimiento.

el procedimiento es importante que cambie de una sola vez todas las columnas de la tabla, osea que recorra todas las columnas

gracias a quien pueda ayudarme

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TblTempD33]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TblTempD33](
[id] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[FechaProceso] [datetime] NULL,
[Organizacion] [decimal](3, 0) NULL,
[Cuenta] [decimal](19, 0) NULL,
[TipoCuenta] [decimal](3, 0) NULL,
[Cupo] [decimal](12, 0) NULL,
[CupoUF] [decimal](21, 2) NULL,
[TramoCupo] [decimal](3, 0) NULL,
[Moneda] [decimal](3, 0) NULL,
[TipoTasa] [decimal](3, 0) NULL,
[Tasa] [decimal](5, 2) NULL,
[MontoTrx] [decimal](9, 0) NULL,
[CodTrx] [decimal](3, 0) NULL,
[PlanTrx] [decimal](5, 0) NULL,
[tipoOperacion] [decimal](4, 0) NULL,
[IdSbif] [decimal](3, 0) NULL,
[Diferimiento] [decimal](3, 0) NULL,
[PlazoCuotas] [decimal](2, 0) NULL,
[NumTablaInt] [decimal](3, 0) NULL,
[PCT] [varchar](3) NULL,
[valor_uf] [decimal](7, 0) NULL,
[FechaIngTasa] [datetime] NULL,
[FechaUF] [datetime] NULL,
[PlazoCMeses] [decimal](2, 0) NULL,
[IDSuper] [decimal](3, 0) NULL,
[TasaMax] [decimal](5, 2) NULL,
[Ciclo] [decimal](2, 0) NULL,
[producto] [decimal](2, 0) NULL,
[filler] [varchar](30) NULL,
[tmpFechaproceso] [varchar](50) NULL
) ON [PRIMARY]
END

******************************************

yo lo habia echo con un trigger pero ahora necesito con procedimiento de almacenado
y nose como hacerlo

create
TRIGGER holi_hola

on
TbltempD33

after
insert

as

declare
@a varchar(10);

BEGIN

set
nocount on;

select
@a =(select tmpFechaproceso
from tbltempd33
where id=(select max(id)from tbltempd33));

update
TbltempD33

set
Fechaproceso =(cast(@a as datetime ))
- Ocultar texto citado -

where
id= (select max(id)from tbltempd33);

END
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
Imágen de perfil de Isaias

RE:AYUDA PORFA URGENTE SQL SRV 2005

Publicado por Isaias (3186 intervenciones) el 09/12/2009 18:43:36
¿Para que abrir una nueva posta?, ya te di respuesta.......
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