본문 바로가기
통계프로그램 비교 시리즈/프로그래밍비교(Oracle,Python,R,SAS)

[날짜 처리] 현재 날짜를 출력하기 위한 다양한 방법 구현 - 14 (오라클 SQL, R, Python, SAS)

by 기서무나구물 2021. 8. 5.

포스팅 목차

    14. Display current date.

     

    - 오늘 날짜를 출력하시오.


    • Oracle : sysdate, to_char
    • 파이썬 Pandas : datetime.now(), datetime.today, time.time(), time.strftime(), time.localtime() 함수
    • R 프로그래밍 : Sys.Date(), lubridate::today() 함수
    • R Dplyr Package :
    • R sqldf Package : strftime 함수, now
    • Python pandasql Package : strftime() 함수, date() 함수, now
    • R data.table Package :
    • SAS Proc SQL : TODAY() 함수, put 함수
    • SAS Data Step : TODAY() 함수, put 함수
    • Python Dfply Package : mutate 함수, datetime.now(),datetime.today(), to_datetime(), .astype(), strftime() 함수
    • 파이썬 Base 프로그래밍 :

     


    1. 오라클(Oracle)

    Sysdate 함수를 사용하여서 현재 일자를 반환한다.

     

    Oracle Programming
    select sysdate now_day,
           to_char(sysdate,'yyyymmdd') as now_day1
    from   dual;

     


    2. 파이썬(Pandas)

    현재 일자를 반환한다.

     

    Python Programming
    import datetime
    
    datetime.datetime.now()

     

    Results
    datetime.datetime(2020, 11, 14, 8, 34, 37, 842173)

     


     

    Python Programming
    datetime.datetime.today()

     

    datetime.datetime(2020, 11, 14, 8, 34, 38, 451218)

     


     

    Python Programming
    import time
    
    time.strftime('%Y-%m-%d', time.localtime(time.time()))

     

    Results
    '2020-11-14'

     


    3. R Programming (R Package)

    Sys.Date() 함수를 사용하여서 현재 일자를 반환한다.

     

    R Programming
    %%R
    
    Sys.Date()

     

    Results
    [1] "2020-11-14"

     


     

    R Programming
    %%R
    
    library('lubridate')
    
    lubridate::today()

     

    Results
    [1] "2020-11-14"

     


    5. R sqldf Package

    현재 일자를 반환한다.

     

    R Programming
    %%R
    
    sqldf("select strftime('%Y-%m-%d', 'now') now")

     

    Results
             now
    1 2020-11-13

     


    6. Python pandasql Package

    date('now') 함수를 사용하여서 현재 일자를 반환한다.

     

    Python Programming
    ps.sqldf("select date('now') now")

     

    Results
      now
    0 2020-11-13

     


     

    Python Programming
    ps.sqldf("select strftime('%Y-%m-%d', 'now') now")

     

    Results
      now
    0 2020-11-13

     


    8. SAS Proc SQL

    Today() 함수를 사용하여서 현재 일자를 반환한다.

     

    SAS Programming
    %%SAS sas
    
    PROC SQL;
      CREATE TABLE STATSAS_1 AS
        SELECT A.*,
               PUT(TODAY(),YYMMDDN.) AS TODATE_CHAR,
               TODAY()               AS TODATE_NUM FORMAT = YYMMDDN.
        FROM   EMP A;
    QUIT;
    PROC PRINT;RUN;

     

    Results
    OBS empno ename job mgr hiredate sal comm deptno TODATE_CHAR TODATE_NUM
    1 7369 SMITH CLERK 7902 1980-12-17 800 . 20 20210413 20210413
    2 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 20210413 20210413
    3 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 20210413 20210413
    4 7566 JONES MANAGER 7839 1981-04-02 2975 . 20 20210413 20210413
    5 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 20210413 20210413
    6 7698 BLAKE MANAGER 7839 1981-03-01 2850 . 30 20210413 20210413
    7 7782 CLARK MANAGER 7839 1981-01-09 2450 . 10 20210413 20210413
    8 7788 SCOTT ANALYST 7566 1982-12-09 3000 . 20 20210413 20210413
    9 7839 KING PRESIDEN . 1981-11-17 5000 . 10 20210413 20210413
    10 7844 TURNER SALESMAN 7698 1981-09-08 1500 0 30 20210413 20210413
    11 7876 ADAMS CLERK 7788 1983-01-12 1100 . 20 20210413 20210413
    12 7900 JAMES CLERK 7698 1981-12-03 950 . 30 20210413 20210413
    13 7902 FORD ANALYST 7566 1981-12-03 3000 . 20 20210413 20210413
    14 7934 MILLER CLERK 7782 1982-01-23 1300 . 10 20210413 20210413

     


    9. SAS Data Step

    Today() 함수를 사용하여서 현재 일자를 반환한다.

     

    SAS Programming
    %%SAS sas
    
    DATA STATSAS_2;
     SET EMP;
         TODATE_CHAR = PUT(TODAY(),YYMMDDN.);
    
         FORMAT TODATE_NUM YYMMDDN.;
         TODATE_NUM  = TODAY();
    RUN;
    PROC PRINT;RUN;

     

    Results
    OBS empno ename job mgr hiredate sal comm deptno TODATE_CHAR TODATE_NUM
    1 7369 SMITH CLERK 7902 1980-12-17 800 . 20 20210413 20210413
    2 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 20210413 20210413
    3 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 20210413 20210413
    4 7566 JONES MANAGER 7839 1981-04-02 2975 . 20 20210413 20210413
    5 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 20210413 20210413
    6 7698 BLAKE MANAGER 7839 1981-03-01 2850 . 30 20210413 20210413
    7 7782 CLARK MANAGER 7839 1981-01-09 2450 . 10 20210413 20210413
    8 7788 SCOTT ANALYST 7566 1982-12-09 3000 . 20 20210413 20210413
    9 7839 KING PRESIDEN . 1981-11-17 5000 . 10 20210413 20210413
    10 7844 TURNER SALESMAN 7698 1981-09-08 1500 0 30 20210413 20210413
    11 7876 ADAMS CLERK 7788 1983-01-12 1100 . 20 20210413 20210413
    12 7900 JAMES CLERK 7698 1981-12-03 950 . 30 20210413 20210413
    13 7902 FORD ANALYST 7566 1981-12-03 3000 . 20 20210413 20210413
    14 7934 MILLER CLERK 7782 1982-01-23 1300 . 10 20210413 20210413

     


    10. Python Dfply Package

     

    Python Programming
    import datetime
    import time
    
    @make_symbolic
    def to_datetime(series, infer_datetime_format=True):
        return pd.to_datetime(series, infer_datetime_format=infer_datetime_format)
    
    statwith = emp >> mutate( now_day  = datetime.datetime.now() ,
                              now_day1 = datetime.datetime.today(),              
                              now_day2 = time.strftime('%Y-%m-%d', time.localtime(time.time())),
    
                              hire_date = to_datetime(X.hiredate),
                              hire_str  = X.hiredate.astype(str),                          
                              hire_str2 = to_datetime(X.hiredate).astype(str),
                              hire_str3 = to_datetime(X.hiredate).dt.strftime('%Y%m%d') ) >> select(~X.ename, ~X.job, ~X.mgr, ~X.sal, ~X.comm, ~X.deptno)
    
    display(statwith.dtypes)
    
    statwith >> head(7)

     

    Results
    empno                 int64
    hiredate             object
    now_day      datetime64[ns]
    now_day1     datetime64[ns]
    now_day2             object
    hire_date    datetime64[ns]
    hire_str             object
    hire_str2            object
    hire_str3            object
    dtype: object

     

    Results
      empno hiredate now_day now_day1 now_day2 hire_date hire_str hire_str2 hire_str3
    0 7369 1980/12/17 2021-04-19 17:33:09.791307 2021-04-19 17:33:09.791323 2021-04-19 1980-12-17 1980/12/17 1980-12-17 19801217
    1 7499 1981/02/20 2021-04-19 17:33:09.791307 2021-04-19 17:33:09.791323 2021-04-19 1981-02-20 1981/02/20 1981-02-20 19810220
    2 7521 1981/02/22 2021-04-19 17:33:09.791307 2021-04-19 17:33:09.791323 2021-04-19 1981-02-22 1981/02/22 1981-02-22 19810222
    3 7566 1981/04/02 2021-04-19 17:33:09.791307 2021-04-19 17:33:09.791323 2021-04-19 1981-04-02 1981/04/02 1981-04-02 19810402
    4 7654 1981/09/28 2021-04-19 17:33:09.791307 2021-04-19 17:33:09.791323 2021-04-19 1981-09-28 1981/09/28 1981-09-28 19810928
    5 7698 1981/03/01 2021-04-19 17:33:09.791307 2021-04-19 17:33:09.791323 2021-04-19 1981-03-01 1981/03/01 1981-03-01 19810301
    6 7782 1981/01/09 2021-04-19 17:33:09.791307 2021-04-19 17:33:09.791323 2021-04-19 1981-01-09 1981/01/09 1981-01-09 19810109

     


     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE]   SQL EMP 예제로 만나는 테이블 데이터 전처리 방법 리스트

     

    반응형

    댓글