2015-11-07 100 views
0

我使用Oracle 11g和我不知道爲什麼我的查詢返回不同的結果,當我使用SQL/PLUS,當我使用PHP相同的查詢和不同的結果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和PHP結果

SQL PLUS AND PHP RESULT

+0

您確定這兩個示例(PHP和SqlPlus)都在同一個數據庫上連接嗎? –

+0

爲什麼你爲Oracle/SQL * PLUS問題指定MySQL和sql-server標記? –

+0

您系統帳戶的密碼是'3636'? –

回答

0

我看到不同的查詢:

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) 

甲骨文:

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:我不能發表評論。

再次檢查!

相關問題