从双重
选择TO_DATE('2017年3月1日','DD MON YYYY')可以选择SELECT TO_DATE(2017年3月1日','DD MON YYYY'),不喜欢'st'
答案 0 :(得分:1)
我认为你需要像regex这样的东西:
SELECT TO_DATE(
regexp_replace('1st March 2017','^(\d+)\w+','\1')
,'DD MON YYYY') from dual
答案 1 :(得分:1)
唉,你不能直接这样做:https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#BABGDDFB
关于日期格式元素后缀的注释:
当您将其中一个后缀添加到日期时间格式元素时,返回值始终为英语。
日期时间后缀仅对格式输出有效。您无法使用它们将日期插入数据库。
这实际上意味着它们仅与to_char()
一起将日期转换为字符串;他们不能使用to_date()
将字符串转换为日期。
所以你必须玩脏伎俩 - 也许是regexp_replace来摆脱st
。就像迈克尔已经表现出来的那样。
答案 2 :(得分:0)
希望这是你的答案
SELECT TO_CHAR(to_date('1st march 2017','dd"st" month yyyy'),'dd-mon-yyyy') "Date"
FROM dual;
01-MAR-17
MyStream = new FileStream(PDFDirectory, FileMode.Create);
01-MAR-2017