【发布时间】: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 中获取包含实际日期但固定时间部分的时间戳的最佳方法是什么。
例如今天和总是 09:00:00
2020-10-20 09:00:00
在 MSSQL 中我会使用 FORMAT(GETDATE(),'yyyy-MM-dd 09:00:00')
【问题讨论】:
假设您想要 date 而不是 varchar2,我会使用
trunc(sysdate) + interval '9' hour
trunc(sysdate) 今天午夜返回,然后interval '9' hour 增加了 9 个小时给你上午 9 点。您还可以将一天中的分数添加到 date,这样您就可以说
trunc(sysdate) + 9/24
我倾向于发现 interval 表示法更易于解释,特别是如果您来自非 Oracle 背景。
【讨论】:
你可以这样使用:
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
希望这就是你要找的:)
【讨论】:
TRUNC(SYSDATE) + 9/24 以获得 DATE 值