2011-09-21 49 views
0

我正在尝试运行一个选择查询,该查询将在2300的日期范围内提供所有排定的计划。有没有办法将预定的日期/时间转换为恰好一小时?这是我到目前为止:查询仅在特定时间发生的交易

SELECT DISTINCT USERCODE, 
      TRANSACTIONID, 
      ACTION, 
      TRANSACTIONHOUR, 
      SOURCE, 
      RXNUMBER, 
      DESCRIPTION, 
      MASTERPATIENTID, 
      FACILITYCODE, 
      ADMINISTRATIONTIME 
FROM ( ABC.TL TL 
     INNER JOIN 
      ABC.S_VIEW S_VIEW 
     ON (TL.RXNUMBER = S_VIEW.RXNUMBER)) 
    INNER JOIN 
     ABC.PV PATIENTVISIT 
    ON (TL.MASTERPATIENTID = PV.MASTERPATIENTID) 
WHERE (TL.USERCODE NOT IN ('ABC')) 
    AND (TL.ACTION IN ('A', 'DC')) 
    AND (TL.TRANSACTIONHOUR BETWEEN to_date('2011-07-01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AND to_date('2011-09-30 23:59:59', 'yyyy/mm/dd hh24:mi:ss') 

我想查询包括在指定的日期,但只有在2300年的所有分配。数据库是Oracle 10g。

回答

1

首先,您以不同的格式给出了日期字符串,格式不同。保持一致。

试试这个:

SELECT DISTINCT USERCODE, 
      TRANSACTIONID, 
      ACTION, 
      TRANSACTIONHOUR, 
      SOURCE, 
      RXNUMBER, 
      DESCRIPTION, 
      MASTERPATIENTID, 
      FACILITYCODE, 
      ADMINISTRATIONTIME 
FROM ( ABC.TL TL 
     INNER JOIN 
      ABC.S_VIEW S_VIEW 
     ON (TL.RXNUMBER = S_VIEW.RXNUMBER)) 
    INNER JOIN 
     ABC.PV PATIENTVISIT 
    ON (TL.MASTERPATIENTID = PV.MASTERPATIENTID) 
WHERE (TL.USERCODE NOT IN ('ABC')) 
    AND (TL.ACTION IN ('A', 'DC')) 
    AND (TL.TRANSACTIONHOUR BETWEEN to_date('2011/07/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AND to_date('2011/09/30 23:59:59', 'yyyy/mm/dd hh24:mi:ss') 
    AND TO_CHAR(TL.TRANSACTIONHOUR, 'HH24MI') = '2300' --THIS IS THE NEW CONDITION 
+0

这工作!谢谢! – Shaji