我是 SQL 新手,我对下面的查询有疑问。我需要返回过去 24 小时内输入的订单会话,如果我没有最后一条语句,查询将返回所有订单会话,但我只需要过去 24 小时内的订单会话。CCDBA.O_PAT.ORDER_DDT 不是 Oracle 日期,而是需要使用 ddt.tochar 将其转换为可读日期的数字。
SELECT DISTINCT
CCDBA.O_PAT.SESSION_ID,
CCDBA.PATIENT.MEDREC_ID "MRN",
CCDBA.PATIENT.VISIT_NUMBER "Account Number",
CCDBA.PATIENT.LAST_NAME || ', ' || CCDBA.PATIENT.FIRST_NAME "Patient",
CCDBA.PATIENT.DEPT_ID "Floor",
CCDBA.PATIENT.ROOM_ID "Room",
ddt.tochar(CCDBA.O_PAT.ORDER_DDT) "Order Date"
FROM CCDBA.PATIENT
INNER JOIN CCDBA.O_PAT ON CCDBA.O_PAT.PAT_SEQ = CCDBA.PATIENT.PAT_SEQ
WHERE CCDBA.O_PAT.ORDER_ID = '681278'
AND TO_DATE(ddt.tochar(CCDBA.O_PAT.ORDER_DDT), 'DD-MON-YY HH24:MI:SS')
>= SYSDATE -1;
我收到以下错误:
ORA-01843: not a valid month
01843. 00000 - "not a valid month"
*Cause:
*Action:
原始数据CCDBA.O_PAT.ORDER_DDT
如下所示:使用 ddt.tochar 转换后7686745377
的数据如下:CCDBA.O_PAT.ORDER_DDT
02/20/14 09:58