Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 甲骨文获得日期与3个字母_Java_Database_Oracle - Fatal编程技术网

Java 甲骨文获得日期与3个字母

Java 甲骨文获得日期与3个字母,java,database,oracle,Java,Database,Oracle,我有一个程序,可以在表中插入一些数据 在我的表格中,我显示了日数和周数,如以下输出(丹麦语) 到Uge 42 今天的名字是什么 Uge是一周 42是一周的数字 我想做的是得到to to be TOR(Torsdagwhich是周四的丹麦语单词的缩写) 目前我的代码如下所示: "DY' || ' ' || '\"Uge\" '|| 'IW"; 有什么办法可以让我把日期写成3个字母的字符串,或者我必须把字符串的子字符串改一下吗 更新从我的程序添加的SQL代码 String sql =

我有一个程序,可以在表中插入一些数据

在我的表格中,我显示了日数和周数,如以下输出(丹麦语)

到Uge 42

今天的名字是什么

Uge是一周

42是一周的数字

我想做的是得到to to be TOR(Torsdagwhich是周四的丹麦语单词的缩写)

目前我的代码如下所示:

"DY' || ' ' || '\"Uge\" '|| 'IW";
有什么办法可以让我把日期写成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  

请注意,我并没有把这段代码写成我以前的同事写的,它很混乱

我认为您应该在
日期
列中保存一个
日期
,并将所有其他内容留给渲染。这些都是显示问题

查询
java.sql.Date
并使用
java.text.DateFormat
将其转换为所需的字符串。

示例:

select to_char(sysdate,'YYYY-MON-DD') from dual;

看起来没有其他格式模型可以满足您的要求。”DY’给出了“一天的缩写名称”——在我的英语系统中,这意味着一个三个字母的缩写,但我猜在你们的语言中,标准缩写是两个字母

与使用子字符串相比,我建议将其转换为一周中的数字天,然后简单地进行映射,例如(使用英文缩写):

CASE TO_CHAR(sysdate,'D')
当1时,然后是“太阳”
当2时,然后“MON”
3点时,然后是“星期二”
结束

问题是,代码非常混乱,清理它需要大量的工作(我没有创建代码),所以他做的是以下声明:我要更新我原来的帖子,确实非常混乱。是时候重构了。不要让这种味道永久化。您应该改变的其他事情之一是使用绑定变量,而不是将日期连接到SQL查询中——这会导致在执行连接时一次隐式转换为文本,在执行查询时第二次隐式转换回日期。如果会话的默认日期格式发生更改,您可能会得到失败或错误的结果,而且您很难为每个不同的日期解析新查询。看起来已经有一个
date
列,
TIDSPUNKT
,他只是在查询中获取其值时尝试设置格式。但您可能是对的,如果要将这些数据拉到某个前端进行显示,那么在那里进行文本转换可能更有意义。对,我来说,将这些数据嵌入数据库是没有意义的。小心点,在许多非美国地区,“D”将在周一返回1(取决于
NLS_地区
select to_char(sysdate,'YYYY-MON-DD') from dual;
CASE TO_CHAR(sysdate,'D')
  WHEN 1 THEN 'SUN'
  WHEN 2 THEN 'MON'
  WHEN 3 THEN 'TUE'
  <et cetera>
END