此编码给出了SYSDATE的正确答案

select round((SYSDATE - date '1970-01-01')*24*60*60) from dual;

1662482430 (seconds) 

我需要以GMT/UTC为单位返回日期/时间.

我需要语法方面的帮助.

谢谢你,皮特

推荐答案

如果您使用SYSTIMESTAMP而不是SYSDATE,则该值将位于您的数据库时区,然后您可以将其转换为UTC,其值为at time zone:

SYSTIMESTAMP at time zone 'UTC'

并将其追溯到一个日期:

cast(SYSTIMESTAMP at time zone 'UTC' as date)

然后在你的计算中使用它:

select round((cast(SYSTIMESTAMP at time zone 'UTC' as date) - date '1970-01-01')*24*60*60)
from dual;

db<>fiddle

Sql相关问答推荐

提取Snowflake SQL中的嵌套键

SQL查询以创建手头的流动余额?

为表中每个缺少的引用创建新行

Lag()函数的差异:R与SQL(将R代码转换为SQL)

从依赖于其他表的值的XREF表中的值分组获得正确的计数?

冲突查询的UPDATE时违反非空约束

Oracle中的时间戳

PATINDEX中与[A-Z]匹配(U除外)的正则表达式

基于开始/结束日期重叠的BigQuery突发行

需要使用SQLite查询进行一些奇怪的时间转换

无法访问级联删除导致的触发器中已删除的外键记录

对现有记录进行分组

AdventureWorks 查询

如何从三个连接表中获取数据,并始终显示第一个表中的数据,以及第三个表中的空值或现有记录?

如何优化仅返回符合条件的三条记录的查询?

计数时如何为所有时间间隔返回 0 而不是什么都不返回

查找具有相同连接列数据的所有记录

有没有一种方法可以将始终遵循序列的单个字段的值组合起来,以创建每个 ID 的所有移动?

交叉应用 OPENJSON / PIVOT - 错误的顺序

pyspark 将列转换为行