postgresql 类型的错误



我正在尝试制作一个以这种方式获取多个变量的 php 文件: http://plugins.smart-coast.com/reporte_rips.php?q=2016-11-01*-2016-11-30-107-*abc-001

php 文件是下一个(为了安全起见,我避免断开连接(:

 <?php 

   if(!isset($_GET['q'])){
      //echo "no se ha recibido nada";
      die();
   }
   $datos          = explode('*-*',$_GET['q']);   
   $fecha        = explode ("-", $datos[0]);
   $fecha_inicio    = $fecha[2].'/'.$fecha[1].'/'.$fecha[0];   
   $fecha        = explode ("-", $datos[1]);
   $fecha_fin     = $fecha[2].'/'.$fecha[1].'/'.$fecha[0];
   $fecha_inicio1    = $datos[0];
   $fecha_fin1    = $datos[1];
   $cod_empresa    = $datos[2];
   $no_contrato    = $datos[3];   
   $contador_AF = 0;
   $contador_US = 0;
   $contador_AC = 0;
   $contador_AP = 0;
   $contador_AU = 0;
   $contador_AH = 0;
   $contador_AM = 0;
   $contador_AT = 0;

   //Archivo AF____________________________________________________________________________________________________________________________
   $query    = "Copy (SELECT '524730152501','E.S.E. CENTRO DE SALUD SAN FRANCISCO','NI,900167616-9',a.no_factura,to_char(a.fecha,'dd/mm/yyyy'),'$fecha_inicio','$fecha_fin',b.codigo_entrada,b.nombre,'$no_contrato','','','','','',a.valor_total from hlt_factura a left join hlt_empresa b on a.cod_empresa=b.cod_empresa where a.estado = 'f' AND a.cod_empresa = '$cod_empresa' AND a.cod_facturacion = '2' AND cast(a.fecha as date) BETWEEN cast($fecha_inicio1 as date) AND cast($fecha_fin1 as date)) To '/var/lib/postgresql/AF524730152501.txt' With CSV DELIMITER ',';";
   $result = pg_query($db_connection, $query);
   //Archivo CT
   $query    = "SELECT count(*) as cantidad from hlt_factura a left join hlt_empresa b on a.cod_empresa=b.cod_empresa where a.estado = 'f' AND a.cod_empresa = '$cod_empresa' AND a.cod_facturacion = '2' AND cast(a.fecha as date) BETWEEN cast($fecha_inicio1 as date) AND cast($fecha_fin1 as date);";
   $result = pg_query($db_connection, $query);
   while($r = pg_fetch_array($result)) {      
      $contador_AF = $r['cantidad'];
   }
   $fecha_hoy    = date("d/m/Y");
   $salida    = shell_exec('rm CT524730152501.txt');
   $archivo    = fopen('CT524730152501.txt',"a");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',AC524730152501,'.$contador_AC. "n");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',AP524730152501,'.$contador_AP. "n");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',AH524730152501,'.$contador_AH. "n");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',AU524730152501,'.$contador_AU. "n");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',AM524730152501,'.$contador_AM. "n");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',AT524730152501,'.$contador_AT. "n");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',AF524730152501,'.$contador_AF. "n");
   fwrite($archivo,'524270069601,'.$fecha_hoy.',US524730152501,'.$contador_US. "n");
   fclose($archivo);

   //Se cambia los archivos de direccion
   $salida = shell_exec('cp /var/lib/postgresql/AC524730152501.txt  /var/www/html/pmplugins/workflow/public_html/');
   //Se crea el archivo .zip y se adjuntan los archivos de rips
   $zip = new ZipArchive;
    $zip->open("Rips524730152501.zip",ZipArchive::CREATE);
    $zip->addFile("AF524730152501.txt");
?>

但是我收到此错误:

警告:pg_query((:查询失败:错误:无法强制转换类型整数到日期第 1 行:...ast(to_char(2016-11-01,'yyyy-mm-dd'( 作为日期( 和 cast(2016-... ^ in/var/www/html/pmplugins/workflow/public_html/reporte_rips.php 在第 44 行

你已经警告了答案。 cannot cast type integer to date .将日期写为字符串cast('2016-...' as date),它应该可以正常工作。PostgreSQL 将 2016-11-01 视为整数,所以这就是问题所在。在'...'之间添加每个日期

相关内容

最新更新