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

在oracle中根据日期减去日期

  •  0
  • ashish  · 技术社区  · 6 年前

    根据下面的查询,当零件不工作时,

    select case when to_char(sysdate,'Day')  =  'Friday'  then trunc(SYSDATE) - 3 else trunc(SYSDATE) - 2   end as tempdate from dual
    

    有什么帮助吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Kaushik Nayak    6 年前

    TO_CHAR 放置尾随空格。你可以加一个 TRIM

    SELECT
            CASE
                WHEN TRIM(TO_CHAR(SYSDATE,'Day')) = 'Friday' THEN trunc(SYSDATE) - 3
                ELSE trunc(SYSDATE) - 2
            END
        AS tempdate
    FROM
        dual
    

    你也可以使用 Fm 格式限定符

    to_char (sysdate, 'FmDay') 避免修剪

    或者为了避免 NLS_ 参数问题

    TO_CHAR (sysdate, 'FmDay', 'nls_date_language=english')