已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
19天前关闭。
Improve this question
我想将时间戳转换为纪元日期。
SELECT (CAST(timestamp '2022-10-13 00:00:00' AT TIME ZONE 'UTC' AS date) - date '1970-01-01') * 86400 * 1000 EPOCH_FROM_DATE
FROM DUAL;
这解决了我的目的。
但我希望这样:
SELECT (CAST(timestamp (to_char(sysdate, 'YYYY-MM-DD') || ' 00:00:00') AT TIME ZONE 'UTC' AS date) - date '1970-01-01') * 86400 * 1000 EPOCH_FROM_DATE
FROM DUAL;
出现错误!
2条答案
按热度按时间c3frrgcw1#
如果您希望:
SYSTIMESTAMP
并将其转换为UTC
时区,然后使用TRUNC
。输出:
| 世界协调时午夜纪元|终点_午夜_当前_TZ|
| - -|- -|
| 1665705600000美元|小行星1665702000000|
fiddle
5hcedyr02#
所以这部分就在这里:
是一个 timestamp literal,而第二部分必须是字符串literal。您不能动态创建它。
您应该改用
to_timestamp()
函数:您可以通过省略时间(假定为午夜)来使其稍短一些: