【问题标题】:How to get a date at midnight如何在午夜约会
【发布时间】:2017-05-03 08:09:08
【问题描述】:

我想知道如何获取 00 时 00 分 00 秒的日期。

这个

select to_char(sysdate, 'dd/MM/YYYY HH:mm:ss') from dual;

给出我询问时的日期

如果我不给任何时间:

select to_char(to_date('03/05/2017', 'DD/MM/YYYY'), 'DD/MM/YYYY HH:mm:ss') from dual;

我中午有个约会。

如何获取 00:00:00 的日期(使用 sysdate 或使用 to_date 给出我自己的日期)

谢谢

【问题讨论】:

    标签: oracle date


    【解决方案1】:

    使用TRUNC( date_value, format_model ) 并省略格式模型(默认为截断到午夜)或使用format models 'ddd''dd''j' 之一:

    SELECT TRUNC( SYSDATE ) FROM DUAL;
    

    我不给任何时间:

    select to_char(to_date('03/05/2017', 'DD/MM/YYYY'), 'DD/MM/YYYY HH:MI:SS') from dual;
    

    我中午有个约会。

    不,您将午夜的日期格式化为 12 小时制。

    select to_char( to_date('03/05/2017', 'DD/MM/YYYY'), 'DD/MM/YYYY HH:MI:SS PM')
    

    输出03/05/2017 12:00:00 AM

    要获得 24 小时制,您需要在格式模型中使用 HH24(而不是 HHHH12,这是 12 小时制):

    select to_char( to_date('03/05/2017', 'DD/MM/YYYY'), 'DD/MM/YYYY HH24:MI:SS')
    

    输出03/05/2017 00:00:00

    【讨论】:

    • 如果输入的是sysdate怎么办?
    • @dcdum2018 我相信答案的第三行涵盖了该问题;使用SELECT TRUNC( SYSDATE ) FROM DUAL;
    【解决方案2】:

    mm 应替换为 mi 分钟:

    select to_char(to_date('03/05/2017', 'DD/MM/YYYY'), 'DD/MM/YYYY HH:mm:ss') from dual;
    

    【讨论】:

      猜你喜欢
      • 2016-01-13
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 2021-09-23
      • 2011-10-14
      • 2023-03-19
      • 2012-09-25
      • 2013-01-18
      相关资源
      最近更新 更多