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

pasar codigo de acces a sql server 2005

Estas en el tema de pasar codigo de acces a sql server 2005 en el foro de SQL Server en Foros del Web. Buenas tardes Amigos necesito de su ayuda, tengo el siguiente inconveniente: Tengo este código en Access: UPDATE BASE_MES SET BASE_MES.fechacreacion = IIf([LNNTDT]<100000,("0" & Left([LNNTDT],1) & ...
  #1 (permalink)  
Antiguo 31/08/2011, 11:21
 
Fecha de Ingreso: agosto-2011
Mensajes: 32
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta pasar codigo de acces a sql server 2005

Buenas tardes

Amigos necesito de su ayuda, tengo el siguiente inconveniente:

Tengo este código en Access:

UPDATE BASE_MES SET BASE_MES.fechacreacion = IIf([LNNTDT]<100000,("0" & Left([LNNTDT],1) & "/" & Mid([LNNTDT],2,2) & "/" & Right([LNNTDT],2)),(Left([LNNTDT],2) & "/" & Mid([LNNTDT],3,2) & "/" & Right([LNNTDT],2)));


Lo pase a SQL server 2005 de la siguiente manera:

UPDATE BASE_MESH SET fecha_temporal =
case when LNNTDT<10000 then ('0' + Left(LNNTDT,1)+'/'+'0'+ substring(convert(nvarchar,LNNTDT),2,1)+'/'+ Right(LNNTDT,2))
when LNNTDT<100000 and LNNTDT>=10000 then ('0'+ Left([LNNTDT],1)+'/' + substring(convert(nvarchar,LNNTDT),2,2)+'/'+ Right(LNNTDT,2))
when LNNTDT>100000 then (Left([LNNTDT],2)+'/' + substring(convert(nvarchar,LNNTDT),3,2)+'/' + Right(LNNTDT,2))
end

la columna fecha_temporal es nvarchar(10) .
necesito hacer esto mismo para una columna de tipo datetime


De ante mano muchas gracias.
  #2 (permalink)  
Antiguo 31/08/2011, 12:52
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: pasar codigo de acces a sql server 2005

¿De que tipo es LNNTDT?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 31/08/2011, 13:11
 
Fecha de Ingreso: agosto-2011
Mensajes: 32
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: pasar codigo de acces a sql server 2005

es de tipo float
  #4 (permalink)  
Antiguo 31/08/2011, 14:35
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: pasar codigo de acces a sql server 2005

¿Y nos podrias dar un ejemplo de lo que contiene dicho campo? y algo bien importante, pareciera que deseas formar FECHAS, ¿esto es asi?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 31/08/2011, 15:55
 
Fecha de Ingreso: agosto-2011
Mensajes: 32
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: pasar codigo de acces a sql server 2005

un ejemplo es el siguiente
el campo LNNTDT=51100
el campo fecha_temporal debe quedar de la siguiente manera:
05/11/2000

y si se supone q son fechas lo q hay en el campo LNNTDT
  #6 (permalink)  
Antiguo 01/09/2011, 09:31
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: pasar codigo de acces a sql server 2005

¿Y como sabes que es 2000?, si solo trae dos ceros
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 01/09/2011, 13:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 32
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: pasar codigo de acces a sql server 2005

hey q pena la molestia pero ya pude solucionar el inveniente.

de todas formas dejo el codigo q termine por si alguien mas tiene unproblema pareciso

UPDATE BASE_MESH SET fecha =
case when LNNTDT=0 then null
when LNNTDT<10000 and LNNTDT>0 then convert(datetime,('0'+ Left([LNNTDT],1)+'/' + substring(convert(nvarchar,LNNTDT),2,1)+'/'+ case when Right(LNNTDT,2)>12 then '19'+Right(LNNTDT,2) else '20'+Right(LNNTDT,2) end),103)
when LNNTDT<100000 and LNNTDT>=10000 then convert(datetime,('0'+ Left([LNNTDT],1)+'/' + substring(convert(nvarchar,LNNTDT),2,2)+'/'+ case when Right(LNNTDT,2)>12 then '19'+Right(LNNTDT,2) else '20'+Right(LNNTDT,2) end),103)
when LNNTDT>100000 then convert(datetime,(Left([LNNTDT],2)+'/' + substring(convert(nvarchar,LNNTDT),3,2)+'/' + case when Right(LNNTDT,2)>12 then '19'+Right(LNNTDT,2) else '20'+Right(LNNTDT,2) end),103)
end
  #8 (permalink)  
Antiguo 01/09/2011, 14:30
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: pasar codigo de acces a sql server 2005

Pues esperemos que a alguien le sirva.
__________________
MCTS Isaias Islas

Etiquetas: case, fecha, pasar, server, sql, access
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:54.