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

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

1-1-2015 

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

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

输出:

17-06-2015

【问题讨论】:

标签: sql oracle date


【解决方案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”。
猜你喜欢
  • 2022-10-14
  • 2019-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多