创建具有固定时间部分的时间戳

Create TimeStamp with fixed Time Part

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

e.g.Today 总是 09:00:00

2020-10-20 09:00:00

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

你可以这样使用:

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

希望这就是您要找的:)

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

trunc(sysdate) + interval '9' hour

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

trunc(sysdate) + 9/24

我更倾向于 interval 表示法 self-explanatory 特别是如果您来自 non-Oracle 背景。