2013-02-27 8 views
0

주문 전환 시간을 표시하는 MS 액세스 쿼리가 있습니다. 두 가지 문제 : 그래서 당신이 할 수있는, 당신은 CPOE 시간에서 유효성 검사 시간을 뺄 때, 당신은 몇 분 또는 몇 시간에도 아닌 값을 얻을 :의사 24 시간 시계 시간을 12 시간 시계 시간으로 변환

  1. 시간 24 시간제 시간 시간 (0105를 예를 들어)에
  2. CPOE 시간이 자정 이전이고 유효성 검사 시간이 자정 이후 인 경우 차이가 매우 왜곡됩니다 (예 : 0701 - 0527 = 174, 실제 차이는 94 분) ie : 2351 - 0024 = 2327, 실제 차이는 33 분입니다.)

누구든지 해결 방법을 알고 계십니까?

SELECT 
    BI.PTNAME, 
    PHM_POE_HIST.FUNCTION, 
    PHM_ORDERS.VALIDATED_DATE, 
    PHM_ORDERS.VALIDATED_BY, 
    SAT.USER_NAME, 
    PHM_ORDERS.VALIDATED_TIME, 
    Right([TRAN_DATE_TIME],4) AS CPOE_TIME, 
    Abs([validated_time]-[CPOE_TIME]) AS Diff, 
    PHM_POE_HIST.TRAN_DATE_TIME, 
    PHM_POE_HIST.EFF_DATE_TIME, 
    PHM_POE_HIST.HIST_SEQ, BI.NRS_STATION, 
    SITE.NAME, PHM_ORDERS.PMP, 
    PHM_ORDERS.PRIORITY, 
    Trim([GENERIC_NAME] & " " & [STRENGTH] & " " & [STRENGTH_UNIT] & " " & [DOSAGE_FORM] & " " & [LATIN_DIR_ABBR]) AS DESCRIPTION 
FROM 
    ((BI LEFT JOIN 
      (PHM_ORDERS LEFT JOIN PHM_POE_HIST ON (PHM_ORDERS.POE_ORDER_NUMBER = PHM_POE_HIST.POE_ORDER_NUMBER) AND (PHM_ORDERS.ITN = PHM_POE_HIST.ITN)) 
     ON BI.ITN = PHM_ORDERS.ITN) 
    LEFT JOIN SAT 
     ON PHM_ORDERS.VALIDATED_BY = SAT.USER_INITIALS) 
    LEFT JOIN SITE 
     ON BI.SITE = SITE.SITE 
WHERE 
    (((BI.PTNAME) Is Not Null) 
    AND ((PHM_POE_HIST.FUNCTION)="NW") 
    AND ((PHM_ORDERS.VALIDATED_DATE)=datereltoday(-1)) 
    AND ((PHM_ORDERS.PRIORITY)="STAT")); 

답변

4

그냥 지금 ... 날짜 또는 시간에 수학을하지 않는다 : 다음은 SQL 쿼리입니다. 시간제 시각적 형식이므로, 시간 및 분을 분석 : 데이터 유형 가정

(4)

LEFT(MilitaryTimeColumn, 2) => hours 
RIGHT(MilitaryTimeColumn, 2) => minutes 

다음

CInt(LEFT(MilitaryTimeColumn, 2)) --> hours as integers 
CInt(RIGHT(MilitaryTimeColumn, 2)) --> minutes as integers 

총 분

을 계산할 수로 변환하는 숯불
CInt(LEFT(MilitaryTimeColumn, 2)) * 60 + CInt(RIGHT(MilitaryTimeColumn, 2)) 

다음 원래 날짜에 추가

DateAdd("n", 
    CInt(LEFT(MilitaryTimeColumn, 2)) * 60 + CInt(RIGHT(MilitaryTimeColumn, 2)), 
    DateColumn) --> Complete datetime 

그런 다음 DateDiff을 사용하여 날짜 사이의 거리를 가져옵니다.

+0

동의합니다. 먼저 데이터를 적절한 24 시간 시계로 구문 분석 한 다음 datediff를 사용하십시오. –

관련 문제