我有一个程序可以将一些数据插入到表中。
在我的表中,im显示日和周数,如以下输出(丹麦语)
至UGE 42
今天的名字在哪里
是星期
42是一周的数字。
我想做的是得到ToBeTor(Torsdagwhich是星期四的丹麦单词的缩写)
我的代码现在看起来是这样的:

"DY' || ' ' || '\"Uge\" '|| 'IW";

在orcle中有没有什么东西可以让我把日期作为一个3个字母的字符串,或者我必须对字符串做子字符串并更改它?
从我的程序更新添加的SQL代码
String sql =
            "SELECT                                                                     " +
            "   TO_CHAR(MIN(TIDSPUNKT),'"+getDateDescriptionFormat(when)+"') AS PERIOD, " +
            "   NVL(QUEUE,' ') AS QUEUE,                                                " +
            "   NVL(SUM(ANTAL_KALD),0) AS CALLS,                                        " +
            "   NVL(SUM(ANTAL_BESVARET),0) AS ANSWERED_CALLS,                           " +
            "   NVL(SUM(BESVARET_25_SEK),0) AS ANSWERED_CALLS_25_SEC,                   " +
            "   NVL(SUM(INTERN_KALD),0) AS INTERNAL_CALLS                               " +
            "FROM                                                                       " +
            "   KS_DRIFT.PERO_NKM_KØ_OVERSIGT                                           " +
            "WHERE                                                                      " +
            "   TIDSPUNKT >= '"+getStartDate(start,when)+"' AND                         " +
            "   TIDSPUNKT <= '"+ slut+"' AND                                            " +
            "   TO_CHAR(TIDSPUNKT,'DY') NOT IN ('AB')                                   " +
            "GROUP BY                                                                   " +
            "   TRUNC(TIDSPUNKT,'"+getDateFormatString(when)+"'),                       " +
            "   QUEUE                                                                   " +
            "ORDER BY                                                                   " +
            "   PERIOD

GetDateDistribution格式:
private String getDateDescriptionFormat(char when){
        if (when == 'D')return "DY' || ' ' || '\"Uge\" '|| 'IW";
        if (when == 'W')return "\"Uge\" '||'IW";
        if (when == 'M')return "Mon.' || ' ' || 'YYYY";
        if (when == 'Y')return "YYYY";
        return null;
    }

请注意,我没有做这个代码我以前的同事做过,它是混乱的!

最佳答案

似乎没有其他格式模型可以满足您的要求。在我的英语系统中,这意味着一个三个字母的缩写,但我猜在你们的语言中,标准的缩写是两个字母。
与其做一个子串,我建议转换成一周中的一天,然后简单地进行映射,例如(使用英文缩写):

CASE TO_CHAR(sysdate,'D')
  WHEN 1 THEN 'SUN'
  WHEN 2 THEN 'MON'
  WHEN 3 THEN 'TUE'
  <et cetera>
END

08-26 07:32