我是SQL新手,我對下面的查詢有問題。我需要返回在過去24小時內輸入的訂單會話,如果我沒有最後一條語句,查詢將返回所有訂單會話,但我只需要最近24小時內的會話。 CCDBA.O_PAT.ORDER_DDT不是Oracle日期數字,需要使用ddt.tochar轉換爲可讀日期。過去24小時內收到日期格式和結果信息
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;
我得到folloing錯誤:
ORA-01843: not a valid month
01843. 00000 - "not a valid month"
*Cause:
*Action:
從CCDBA.O_PAT.ORDER_DDT
的原始數據是這樣的:7686745377
從外觀CCDBA.O_PAT.ORDER_DDT
這樣的數據使用ddt.tochar轉換後:02/20/14 09:58
什麼是CCDBA.O_PAT.ORDER_DDT列的數據類型的,什麼是ddt.tochar回報? – OldProgrammer
它是一個oracle日期列,數據類型= NUMBER(10,0)。 ddt.tochar以我們可以讀取的格式返回轉換後的oracle日期。 – user2037188
NUMBER不是日期欄。將日期存儲爲數字並不是一個好主意。問題在於你的tochar函數返回的格式可能與你的格式掩碼不匹配。 – OldProgrammer