2016-03-02 69 views
-1

我有一個表調用CMH_VITALSIGN,這個表中有一列作爲時間,它存儲日期和時間(3/2/2016 11:33:17 AM)。現在我想按小時從這張表中獲取數據。我的表列是..如何從小型數據庫中獲取數據

(
    VITAL_SIGNNO  NUMBER, 
    CONSULT_NO  VARCHAR2(16 BYTE), 
    REG_NO   VARCHAR2(16 BYTE), 
    ADMISSION_NO  VARCHAR2(16 BYTE), 
    DN_NO    VARCHAR2(16 BYTE), 
    CONSULT_DT  DATE, 
    TEMP_C   NUMBER(4,2), 
    TEMP_F   NUMBER(5,2), 
    PULSE    NUMBER(3), 
    RR    NUMBER(2), 
    BP_HIGHER   NUMBER(5,2), 
    BP_LOWER   NUMBER(5,2), 
    RESP    NUMBER(3), 
    SPECIALITY_NO  VARCHAR2(16 BYTE), 
    ENTERED_BY  VARCHAR2(16 BYTE), 
    ENTRY_TIMESTAMP DATE, 
    UPDATED_BY  VARCHAR2(16 BYTE), 
    UPDATE_TIMESTAMP DATE, 
    COMPANY_NO  VARCHAR2(10 BYTE)   DEFAULT 1, 
    SL_NO    VARCHAR2(16 BYTE) 
) 

現在我想顯示數據線圖表每小時基地......

SELECT to_date(ENTRY_TIMESTAMP) DAY, 
    DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'11',pulse, 0) "00", 
    DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'12',pulse,0)"01", 
    DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'13',pulse,0) "02", 
    DECODE(TO_CHAR(ENTRY_TIMESTAMP,'HH24'),'14',pulse,0) "03" 
FROM CMH_VITALSIGN 
WHERE pulse IS NOT NULL 
--where to_date(ENTRY_TIMESTAMP) ='01_MAY-2010' 
--GROUP by to_char(ENTRY_TIMESTAMP,'YYYY-MON-DD'), to_date(ENTRY_TIMESTAMP) 
ORDER BY to_date(ENTRY_TIMESTAMP); 

任何人可以幫助我在此查詢。

+1

的Oracle或MySQL或兩者兼而有之?你能否刪除錯誤的標籤,如果有的話?此外,您可以發佈您的數據和期望結果的檢查嗎? – Aleksej

+0

你能不能也發佈你到目前爲止嘗試過的東西? – Shadow

回答

0
SELECT TO_CHAR (ENTRY_TIMESTAMP, 'HH24') AS hour_num, 
     PULSE, 
     TEMP_C, 
     TEMP_F, 
     RR, 
     BP_HIGHER, 
     BP_LOWER, 
     RESP 
    FROM cmh_vitalsign 
WHERE TRUNC (ENTRY_TIMESTAMP) = TO_DATE ('3/2/2016', 'MM/DD/YYYY') 
and ADMISSION_NO = 'A011009011297'; 
-1

如果你想計算每每隔一小時數據嘗試實現這一點:

SELECT TO_CHAR(d, 'yyyy-mm-dd hh24') hour, COUNT(*) 
FROM (SELECT SYSDATE + LEVEL/26/60 d 
     FROM DUAL 
    CONNECT BY LEVEL < 1000) 
GROUP BY TO_CHAR(d, 'yyyy-mm-dd hh24') 
相關問題