【问题标题】:Create TimeStamp with fixed Time Part创建具有固定时间部分的时间戳
【发布时间】:2021-02-02 09:31:10
【问题描述】:

在 oracle 中获取包含实际日期但固定时间部分的时间戳的最佳方法是什么。

例如今天和总是 09:00:00

2020-10-20 09:00:00

在 MSSQL 中我会使用 FORMAT(GETDATE(),'yyyy-MM-dd 09:00:00')

【问题讨论】:

    标签: oracle timestamp sysdate


    【解决方案1】:

    假设您想要 date 而不是 varchar2,我会使用

    trunc(sysdate) + interval '9' hour
    

    trunc(sysdate) 今天午夜返回,然后interval '9' hour 增加了 9 个小时给你上午 9 点。您还可以将一天中的分数添加到 date,这样您就可以说

    trunc(sysdate) + 9/24
    

    我倾向于发现 interval 表示法更易于解释,特别是如果您来自非 Oracle 背景。

    【讨论】:

      【解决方案2】:

      你可以这样使用:

      SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD';

      Session altered.
      

      SQL> set head off

      SQL> select sysdate||' 09:00:00' from dual;

      2020-10-19 09:00:00
      

      希望这就是你要找的:)

      【讨论】:

      • 这会返回一个 string - 我建议 TRUNC(SYSDATE) + 9/24 以获得 DATE
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 2021-05-07
      • 2021-06-08
      • 1970-01-01
      • 2019-03-23
      • 2012-01-29
      相关资源
      最近更新 更多