【问题标题】:How to get the week day name from a date?如何从日期中获取工作日名称?
【发布时间】:2011-12-21 17:21:37
【问题描述】:

鉴于03/09/1982,我们怎么能说它是哪一天。在这种情况下,它将是Tue。

是否有可能进入单个查询?

【问题讨论】:

    标签: oracle date dayofweek


    【解决方案1】:

    晚了将近十年,但我认为有必要加强@Zohaib 的回答,因为它的结果取决于客户的语言。如果您向用户显示工作日名称,那绝对没问题,但如果您的代码依赖于它,我宁愿像这样控制语言:

    SQL> SELECT TO_CHAR(date '1982-03-09', 'DAY', 'NLS_DATE_LANGUAGE = ENGLISH') day FROM dual;
    
    DAY
    ---------
    TUESDAY
    
    SQL> SELECT TO_CHAR(date '1982-03-09', 'DY', 'NLS_DATE_LANGUAGE = ENGLISH') day FROM dual;
    
    DAY
    ---
    TUE
    
    SQL> SELECT TO_CHAR(date '1982-03-09', 'Dy', 'NLS_DATE_LANGUAGE = ENGLISH') day FROM dual;
    
    DAY
    ---
    Tue
    

    【讨论】:

      【解决方案2】:

      要为 oracle sql 执行此操作,语法为:

      ,SUBSTR(col,INSTR(col,'-',1,2)+1) AS new_field

      对于这个例子,我寻找第二个'-'并将子字符串带到末尾

      【讨论】:

        【解决方案3】:
        SQL> SELECT TO_CHAR(date '1982-03-09', 'DAY') day FROM dual;
        
        DAY
        ---------
        TUESDAY
        
        SQL> SELECT TO_CHAR(date '1982-03-09', 'DY') day FROM dual;
        
        DAY
        ---
        TUE
        
        SQL> SELECT TO_CHAR(date '1982-03-09', 'Dy') day FROM dual;
        
        DAY
        ---
        Tue
        

        (请注意,查询使用 ANSI 日期文字,它遵循 ISO-8601 日期标准并避免日期格式歧义。)

        【讨论】:

        • 请注意,如果您要使用美国日期格式,上述代码示例中的“dd/mm/yyyy”是非典型的。在美国,典型的日期格式为“mm/dd/yyyy”。目前尚不清楚原始日期示例是在 3 月还是在 9 月。
        • 非典型? @DWright 您必须来自美国,并且从未参与过国际项目或听说过国际标准 (ISO)
        • @pablete,我实际上在欧洲长大,了解日期格式的国际差异,也了解 ISO 标准。我发表评论的原因是 OP 显然使用的是美国日期格式,因为 1982 年 3 月 9 日是星期二,但 1982 年 9 月 3 日是星期五。 OP 说这是星期二,所以我们知道正在使用美国日期格式。但是 Zohaib 使用的是 'dd/mm/yyyy' 格式字符串,因此如果 OP 使用 Zohaib 的格式字符串会导致潜在问题,因为它不是美国格式。所以我想提醒人们,尤其是 OP,注意这一点。
        • 叫我疯了,但我会添加并使用select to_char(date '1982-03-09', 'Day') day from dual;。不知道为什么人们如此热衷于大写,因为我们现在有语法荧光笔,而且大写字母在不使用固定宽度字体时会占用更多空间。
        猜你喜欢
        • 2021-08-22
        • 2012-08-31
        • 1970-01-01
        • 2014-08-10
        • 2020-01-12
        • 2015-10-21
        • 2012-01-12
        • 2015-02-24
        相关资源
        最近更新 更多