| |||
Error en select, la primera vez Maestros, tengo un select que utiliza la función date(año,mes,dia), pero como necesito restar fechas en el mismo select hago la siguiente : date(val(substr(fecha1,4,1),mes,dia) para obtener el año, ya que en la db de VF está alfanumérica ejemplo :20021231. Cuando lo ejecuto la primera vez me arroja en siguiente error: Tipo de error: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Visual FoxPro Driver]SQL: no se encuentra la columna 'TCLO'. /general.asp, line 199 Luego le doy actualizar ó F5 y me funciona bien, este error me tiene loco, por favor ayudenme como siempre. salu2 |
| |||
Re: Error en select, la primera vez Este es el Select, les recuerdo que el error lo muestra la primera vez, al actualizar o pressionar F5 me funciona ok. sql="select distinct coord,central,tele,dispo+subdispo,causa+subcausa,s ubstr(tclo,7,2)+'/'+substr(tclo,5,2)+'/'+substr(tclo,1,4)+' '+substr(tclo,9,2)+':'+substr(tclo,11,2),cleaid1,r ep1,ca1,arm1 from acumnac as t1 where "&_ "tele=(selec tele from acumnac where t1.tclo<acumnac.tclo and acumnac.causa<>'5' and acumnac.causa<>'7' and acumnac.dispo<>'19' and acumnac.dispo<>'17' and acumnac.dispo<>'13' and acumnac.causa<>'6' and acumnac.tclo >='" & ano1+mes1+dia1 & "' and acumnac.tclo<='" & ano2+mes2+dia2 & "') "&_ "and clsid='" & dac & "' and area1='" & coord & "' and (date(val(substr(t1.tclo,1,4)),val(substr(t1.tclo, 5,2)),val(substr(t1.tclo,7,2))) - date(val(substr(acumnac.tclo,1,4)),val(substr(acum nac.tclo,5,2)),val(substr(acumnac.tclo,7,2)))) < 30 "&_ "and t1.causa<>'5' and t1.causa<>'7' and t1.dispo<>'19' and t1.dispo<>'17' and t1.dispo<>'13' and t1.causa<>'6' "&_ "order by t1.tele,t1.tclo " |
| |||
Re: Error en select, la primera vez Si está muy complicado, por lo menos indíquenme cuales funciones con sus respectivas sintaxis puedo utilizar para restar fechas, la base de datos está en Visual Foxprox. No se rindan,,,,,,, |
| |||
Re: Error en select, la primera vez Utiliza CAST, que yo sepa, no puedes usar la función date en SQL. sql="select distinct coord,central,tele,dispo+subdispo,causa+subcausa,s ubstr(tclo,7,2)+'/'+substr(tclo,5,2)+'/'+substr(tclo,1,4)+' '+substr(tclo,9,2)+':'+substr(tclo,11,2),cleaid1,r ep1,ca1,arm1 from acumnac as t1 where "&_ "tele=(selec tele from acumnac where t1.tclo<acumnac.tclo and acumnac.causa<>'5' and acumnac.causa<>'7' and acumnac.dispo<>'19' and acumnac.dispo<>'17' and acumnac.dispo<>'13' and acumnac.causa<>'6' and acumnac.tclo >='" & ano1+mes1+dia1 & "' and acumnac.tclo<='" & ano2+mes2+dia2 & "') "&_ "and clsid='" & dac & "' and area1='" & coord & "' and CAST(t1.tclo as datetime) - CAST(acumnac.tclo as datetime) < 30 "&_ "and t1.causa<>'5' and t1.causa<>'7' and t1.dispo<>'19' and t1.dispo<>'17' and t1.dispo<>'13' and t1.causa<>'6' "&_ "order by t1.tele,t1.tclo " Pruébalo, a mi CAST me funciona de maravilla. Si tienes problemas busca información de CAST o CONVERT, que son las funciones de conversión que soporta SQL . Suerte!! ![]() |
| |||
Re: Error en select, la primera vez como deberías estár los datos en TCLO, para que funcione CAST. Solo quiero la sintaxis de CAST, ejemplo : Este SQL me da error: sql="Select coord,central,tele,dispo+subdispo,causa+subcausa from acumnac where (CAST('2002/03/11 05:02P' AS DATETIME ) - CAST('2002/03/11 02:02P' AS DATETIME)) < 30 " Tipo de error: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Visual FoxPro Driver]Falta ) en el nombre de función. /general.asp, line 206 Salu2, espero sus sugerencias... |
| |||
Re: Error en select, la primera vez En principio la sintaxis CAST(t1.tclo as datetime) es correcto. Yo lo uso en el sistema Transact-SQL que utiliza SQL Server. Puede ser que en Foxpro haya alguna diferencia . Sugiero que le heches un vistazo a la ayuda de Fox para ver si hay alguna información acerca de esta función (o si dispone de otra) |