0
我試圖尋找其被構造這樣日期範圍之間進行選擇,在這些日期
trans_Date, customer_age, etc
如果客戶年齡是年齡在交易的時間記錄在控制了年齡。我需要做的是選擇所有目前特定年齡的客戶,這些客戶在日期範圍內進行了交易。
可以說,我只是想在2005年和2010年
之間
我想出了這個select * from trans_logs
where trans_date between TO_DATE("07/13/2005:00:00","MM/DD/YYYY:HH24:MI" and TO_DATE("01/01/2010:00:00","MM/DD/YYYY:HH24:MI")
and customer_age between 13 and 18
我得到一些正確的結果誰購買目前的20歲,但我也得到誰辦理的人2005年18(使他們現在25)
and((customer_age=13 and trans_date BETWEEN TO_DATE('01-JAN-2005:00:00'.'DD-MON-YYYY:HH24:MI') and TO_DATE('31-DEC-2005:23:59','DD-MON-YYYY:HH24:MI'))
or (customer_age=14 and trans_date BETWEEN TO_DATE('01-JAN-2006:00:00'.'DD-MON-YYYY:HH24:MI') and TO_DATE('31-DEC-2006:23:59','DD-MON-YYYY:HH24:MI'))
or (customer_age=15 and trans_date BETWEEN TO_DATE('01-JAN-2007:00:00'.'DD-MON-YYYY:HH24:MI') and TO_DATE('31-DEC-2007:23:59','DD-MON-YYYY:HH24:MI'))
or (customer_age=16 and trans_date BETWEEN TO_DATE('01-JAN-2008:00:00'.'DD-MON-YYYY:HH24:MI') and TO_DATE('31-DEC-2008:23:59','DD-MON-YYYY:HH24:MI'))
or (customer_age=17 and trans_date BETWEEN TO_DATE('01-JAN-2009:00:00'.'DD-MON-YYYY:HH24:MI') and TO_DATE('31-DEC-2009:23:59','DD-MON-YYYY:HH24:MI'))
or (customer_age=18 and trans_date BETWEEN TO_DATE('01-JAN-2010:00:00'.'DD-MON-YYYY:HH24:MI') and TO_DATE('31-DEC-2010:23:59','DD-MON-YYYY:HH24:MI')))
但返回一個錯誤,說我缺少一個右括號。 1.我錯過了什麼?和2.有沒有更有效的方法來做到這一點?
編輯:忘記了第二次約會和其他一些格式化的東西
保存年齡永遠不是一個好主意,你應該存儲出生日期!此外,你很可能有一個提取功能,所以你可以做一些事情,比如'提取(年份來自trans_date)BETWEEN 2005 AND 2010' – 2012-07-13 16:00:30
@VincentSavard不幸的是,我無法控制公司存儲生日的政策,相信我,那是第一個我想到的事情 – 2012-07-13 16:36:01