从 Oracle 日期中删除前导零

Posted

技术标签:

【中文标题】从 Oracle 日期中删除前导零【英文标题】:Remove leading zeros from Oracle date 【发布时间】:2015-06-17 09:58:44 【问题描述】:

我想以以下格式输出当前日期:

1-1-2015 

所以在这个例子中没有零:

SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY') AS today 
FROM dual

输出:

17-06-2015

【问题讨论】:

docs.oracle.com/cd/B19306_01/server.102/b14200/… 【参考方案1】:

你可以在 MM 之前使用 fm。

查询

SELECT TO_CHAR (SYSDATE, 'DD-fmMM-YYYY') AS today FROM dual;

输出

17-6-2015

http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#SQLRF00216

添加:

删除所有前导零:

SELECT TO_CHAR (TO_DATE('01-01-2015', 'DD-MM-YYYY'), 'fmDD-MM-YYYY') AS today FROM dual;

1-1-2015

从月份数中删除前导零:

SELECT TO_CHAR (TO_DATE('01-01-2015', 'DD-MM-YYYY'), 'DD-fmMM-YYYY') AS today FROM dual;

01-1-2015

fm 用作开关。在这个例子中 DD 很好,但 MM 又是前导零。

SELECT TO_CHAR (TO_DATE('01-01-2015', 'DD-MM-YYYY'), 'fmDD-fmMM-YYYY') AS today FROM dual;

1-01-2015

【讨论】:

看起来可能需要在格式图片的开头,实现 1-1-2015 否则你会得到 01-1-2015 @David Aldridge 这是真的。您将其放在日期格式的开头以删除所有前导零。我会将此信息添加到答案中。 嘿@massie 在你给出的例子中,如果我在几个月内也不想要前导零,你能告诉我如何处理最后一个场景 @PragamShrivastava 如果您不想在几个月和几天内出现前导零,您可以使用我写的部分“删除所有前导零:” SELECT TO_CHAR (TO_DATE('01-01-2015 ', 'DD-MM-YYYY'), 'fmDD-MM-YYYY') 今天从双; --> 1-1-2015【参考方案2】:
  SELECT TO_CHAR (SYSDATE, 'fmDD-fmMM-YYYY') AS today FROM dual

FM为填充模式,更多信息可查看here

【讨论】:

不,FM 是一个关闭或打开填充模式的开关,所以通过使用它两次,您可以打开日期编号的填充模式和月份编号的关闭模式。只需使用“fmDD-MM-YYYY”。

以上是关于从 Oracle 日期中删除前导零的主要内容,如果未能解决你的问题,请参考以下文章

不带前导零的日期时间对象

pgSQL:插入日期格式(前导零)?

oracle日期格式长度9如何转为长度10

Javascript切片日期/时间带前导零

摆脱 Python 中日期字符串的前导零? [复制]

如何正确读取带有日期的csv并在熊猫中省略前导零?