복붙노트

[SQL] 변환 한 날로부터 시대 - 오라클

SQL

변환 한 날로부터 시대 - 오라클

내가 오라클 DB에 삽입 할 수 있도록 나는 시대 시간에 날로부터 텍스트 상자에서 날짜를 변환해야합니다.

나는 다음과 같이 현재까지 시대로 변환하는 데 성공하지만, 그것을 다른 방법으로 변환 할 수있는 방법을 찾을 수 없습니다.

SelectCommand="SELECT ID,
            COMPANY,
            FIRST_NAME,
            LAST_NAME,
            ID_NUMBER,
            (SELECT TO_CHAR(TO_DATE('01-JAN-1970','DD/MM/YYYY')
            +(TRAINING_DATE/60/60/24), 'MM/DD/YYYY') FROM dual) AS TRAINING_DATE,
            (SELECT TO_CHAR(TO_DATE('01-JAN-1970','DD/MM/YYYY')
            +(TRAINING_VALABILITY/60/60/24),'MM/DD/YYYY') FROM dual) AS TRAINING_VALABILITY
    FROM CONTRACTORS
    ORDER BY COMPANY"

해결법

  1. ==============================

    1.값에서 DATE '1970-01-01'을 빼면 일 (와 분수 시간 / 분 / 초) 차이의 수를주고 당신은 24 * 60 * 60을 곱 할 수있는 것입니다 :

    값에서 DATE '1970-01-01'을 빼면 일 (와 분수 시간 / 분 / 초) 차이의 수를주고 당신은 24 * 60 * 60을 곱 할 수있는 것입니다 :

    (date_value - DATE '1970-01-01')*24*60*60
    

    최신 정보:

    00 : 00 : 00 UTC 일반적으로, 시대 시간이 1970-01-01T00에서 측정한다. 날짜는 UTC에없는 경우에 당신은 시간대로 변환해야합니다.

    예를 들어, 날짜가 시간대가있는 경우 유럽 / 베를린 :

    ( CAST(
        FROM_TZ(
          CAST( date_value AS TIMESTAMP ),     -- Cast to timestamp
          'Europe/Berlin'                      -- Convert to expected Time Zone
        )
        AT TIME ZONE 'UTC'                     -- Convert Time Zone to UTC
        AS DATE                                -- Cast back to DATE data type
      )
      - DATE '1970-01-01'
    )*24*60*60
    

    DB <> 바이올린

  2. ==============================

    2.

    UpdateCommand="UPDATE CONTRACTORS
                                               SET COMPANY=:COMPANY,
                                                   FIRST_NAME=:FIRST_NAME,
                                                   LAST_NAME=:LAST_NAME,
                                                   ID_NUMBER=:ID_NUMBER,
                                                   TRAINING_DATE=(TO_DATE(:TRAINING_DATE, 'MM-DD-YYYY HH24:MI:SS') - TO_DATE('01-JAN-1970','DD/MM/YYYY'))*24*60*60,
                                                   TRAINING_VALABILITY=(TO_DATE(:TRAINING_VALABILITY, 'MM-DD-YY`enter code here`YY HH24:MI:SS') - TO_DATE('01-JAN-1970','DD/MM/YYYY'))*24*60*60
                                               WHERE (ID=:ID)"
    
  3. from https://stackoverflow.com/questions/38055178/convert-from-date-to-epoch-oracle by cc-by-sa and MIT license