简体   繁体   English

相同的查询和不同的结果sql / plus php

[英]same query and different result sql/plus php

I use oracle 11g and I don't know why my query return different result when I use SQL/PLUS and when I use PHP 我使用oracle 11g,但我不知道为什么在使用SQL / PLUS和使用PHP时查询返回不同的结果

<?php
$conn=oci_connect('system','3636','orcl'); 

$stid = oci_parse($conn,
"SELECT num_chb
 FROM chambre
 WHERE num_chb NOT IN
    (SELECT DISTINCT r.num_chb
     FROM chambre c,
          reservation r
     WHERE (TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
       AND (TO_DATE('2015-12-14','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)");


oci_execute($stid);
$tab=array();

while ($row = oci_fetch_assoc($stid)) {
   $tab[]=$row['NUM_CHB'];
}
print_r($tab);
}
?>

SQL PLUS AND PHP RESULT SQL PLUS和PHP结果

SQL PLUS和PHP结果

I'm seeing different queries: 我看到了不同的查询:

PHP: PHP:

SELECT num_chb
 FROM chambre
 WHERE num_chb NOT IN
    (SELECT DISTINCT r.num_chb
     FROM chambre c,
          reservation r
     WHERE (TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
       AND (TO_DATE('2015-12-14','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)

Oracle: 甲骨文:

SELECT num_chb
 FROM chambre
 WHERE num_chb NOT IN
    (SELECT DISTINCT r.num_chb
     FROM chambre c,
          reservation r
     WHERE (TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
       AND (TO_DATE('2015-12-14','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
     AND (r.dat_arriv TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN AND TO_DATE('2015-12-14','YYYY-MM-DD'))
       AND (r.dat_depart NOT BETWEEN TO_DATE('2015-12-14','YYYY-MM-DD') TO_DATE('2015-12-14','YYYY-MM-DD'))

PD:I cannot comment. PD:我不能发表评论。

Check again! 再检查一遍!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM