Oracle sql日期查询格式为一位数

Oracle sql日期查询格式为一位数,sql,string,oracle,date,datetime,Sql,String,Oracle,Date,Datetime,我需要以Java SimpleDateFormat M/D/YYYY的形式从Oracle检索日期(例如,独立数据为7/4/1776)。但是, 似乎只有一种方法可以检索MM/dd/yyyy(07/04/1776) 有没有什么技巧可以用原来的方式检索日期?我想我可以使用各种if-if语句和子字符串,但这似乎相当复杂 也就是说 select to_char(sysdate, 'MM/DD/YYYY') from dual works 但是 正则表达式是您的朋友: WITH cteDate A

我需要以Java SimpleDateFormat M/D/YYYY的形式从Oracle检索日期(例如,独立数据为7/4/1776)。但是, 似乎只有一种方法可以检索MM/dd/yyyy(07/04/1776)

有没有什么技巧可以用原来的方式检索日期?我想我可以使用各种if-if语句和子字符串,但这似乎相当复杂

也就是说

 select to_char(sysdate, 'MM/DD/YYYY') from dual    works
但是


正则表达式是您的朋友:

WITH cteDate AS (SELECT TO_DATE('01/02/2020', 'DD/MM/YYYY') AS SOME_DATE FROM DUAL)
SELECT TO_CHAR(SOME_DATE, 'MM/DD/YYYY') AS FORMATTED_SOME_DATE,
       REGEXP_REPLACE(TO_CHAR(SOME_DATE, 'MM/DD/YYYY'), '0([0-9])/', '\1/') AS FIXED_DATE
  FROM cteDate
上述回报

FORMATTED_SOME_DATE    FIXED_DATE
02/01/2020             2/1/2020
要解释这里发生了什么: 搜索表达式
'0([0-9])/'
表示“查找以“0”字符开头、后跟“0”到“9”范围内的一个字符并以“/”字符结尾的子字符串。将“0”到“9”范围内的字符视为一个组”

替换表达式
“\1/”
表示“将在搜索字符串中找到的内容替换为第一个分组表达式(只有一个),后跟一个斜杠字符”。

可用于:

select to_char(sysdate, 'fmMM/DD/YYYY') formated_date from dual

 select to_char(date '1776-07-04', 'fmMM/DD/YYYY') formated_date from dual
|格式化日期| | :------------ | | 7/4/1776 |
Yeeeaaahhhh-@GMB的答案确实是正确的答案-但我把它留给大家,因为它是一个整洁的正则表达式演示-它确实产生了正确的答案-但是,实际上,在生产代码中使用他的答案。我希望参加一个udemy课程来学习更高级的oracle查询。我可以做一些复杂的事情,但它们都是选择的,而不是我想学习的“with”语句和东西。
 select to_char(date '1776-07-04', 'fmMM/DD/YYYY') formated_date from dual
| FORMATED_DATE | | :------------ | | 7/4/1776 |