根据您给出的ORACLE下的SQL我给一个固定的时间测试一下,如下:
SYS@PROD1 > SELECT TO_CHAR(86401000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') AS CDATE FROM dual;
CDATE
-------------------
1970-01-02 08:00:01
SYS@PROD1 >
感觉您关心的精度应该到秒一级别,返回的CDATE。可以考虑以下思路比较简单的解决办法,但是精度低。
SELECT TO_DATE(bigint(TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS')) + (86401000 / (1000 * 60 * 60 * 24)),'YYYY-MM-DD HH24:MI:SS') FROM sysibm.dual;
如果考虑到高精度,我同意参考 朱圣节数据库管理员 , 澳門大豐銀行 的。