2013-04-26 46 views
0

我每次運行此查詢,我得到ora00907錯誤:SQL ora00907錯誤

ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis"

SELECT COUNT(*) 
    FROM jobseekerprofile 
    JOIN userprofile on jobseekerprofile.portalprofileid = userprofile.portalprofileid 
WHERE TO_CHAR((jobseekerprofile.createddate >= '23-APR-2013'), 
     TO_CHAR(jobseekerprofile.createddate >='23-APR-2013 14:00:00')) 
    AND TO_CHAR((jobseekerprofile.createddate < '24-APR-2013'), 
     TO_CHAR(jobseekerprofile.createddate < '24-APR-2013 13:59:00')) 
    AND userprofile.domainid = 1 
+1

你是[使用TO_CHAR](http://www.techonthenet.com/oracle/functions/to_char.php)不正確 – 2013-04-26 02:36:15

+0

爲什麼你想要兩個'CreatedDate> = something'條件和兩個'CreatedDate 2013-04-26 02:47:08

+0

我想獲取23/04/2013 14:00:00和24/04/2013 13:59:00 – Constantine 2013-04-26 02:50:09

回答

1

"i need the records to have date with timestamp"

日期有時間要素;在比較兩個日期時總會考慮到這一點。因此,您的第二次比較將拒絕午夜後發生的24-APR-2013的任何值。所以你肯定需要糾正這一點。

您可能會遇到另一個問題,因爲您正在將日期轉換爲字符串。字符串有不同的比較算法。相反,你應該將字符串轉換爲日期。

where createddate between to_date('23-APR-2013 14:00:00', 'DD-MON-YYYY HH24:MI:SS' 
        and to_date('24-APR-2013 13:59:00', 'DD-MON-YYYY HH24:MI:SS') 

不妨使用BETWEEN來簡化陳述。