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

时间:2020-10-19 15:11:45

标签: oracle timestamp sysdate

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

例如今天并且始终是09:00:00

2020-10-20 09:00:00

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

2 个答案:

答案 0 :(得分:1)

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

trunc(sysdate) + interval '9' hour

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

trunc(sysdate) + 9/24

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

答案 1 :(得分:0)

您可以使用类似这样的内容:

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

希望这就是您想要的:)