代码之家  ›  专栏  ›  技术社区  ›  Karuna

to_date的转换表示缺少右括号

  •  0
  • Karuna  · 技术社区  · 3 年前
    select A,B,C,
    TO_DATE(year  ||'-'||  LPAD(month,2,0)  ||'-01','YYYY-MM-DD') as firstday,
    LAST_DAY(TO_DATE(year  ||'-'||  LPAD(month,2,0)  ||'-01','YYYY-MM-DD')) as lastday
    from test;
    

    错误:“在预期位置找不到FROM关键字”

    1 回复  |  直到 3 年前
        1
  •  0
  •   Littlefoot    3 年前

    很多事情。

    SQL> with test (year, month) as
      2    (select '2022', '4' from dual)
      3  select to_date(year ||'-'|| lpad(month, 2, '0') || '-01', 'yyyy-mm-dd') result
      4  from test;
    
    RESULT
    --------------------
    01-APR-22
    
    SQL>
    

    不过,由于你似乎想要当月的1号,你可以将其缩短为

    SQL> with test (year, month) as
      2    (select '2022', '4' from dual)
      3  select to_date(year || month, 'yyyymm') result
      4  from test;
    
    RESULT
    --------------------
    01-APR-22
    
    SQL>
    

    这个 LAST_DAY 选项:

    SQL> with test (year, month) as
      2    (select '2022', '4' from dual)
      3  select
      4             to_date(year  ||'-'||  lpad(month,2,0)  ||'-01','YYYY-MM-DD')  as firstday,
      5    last_day(to_date(year  ||'-'||  lpad(month,2,0)  ||'-01','YYYY-MM-DD')) as lastday
      6  from test;
    
    FIRSTDAY   LASTDAY
    ---------- ----------
    01.04.2022 30.04.2022
    
    SQL>