【发布时间】:2021-05-06 19:54:57
【问题描述】:
如何以'YYYY-MM-DD'格式查找日期差异。
我正在使用以下两个队列:
SELECT TRUNC(TO_NUMBER(SYSDATE - TO_DATE('1994-08-13')) / 365.25) AS AGE FROM DUAL;
ORA-01861: 文字与格式字符串不匹配
SELECT (TO_DATE(SYSDATE, 'YYYY-MM-DD') - TO_NUMBER('1994-08-13', 'YYYY-MM-DD')) FROM DUAL;
O/P-: -727738
所需的 o/p:26
【问题讨论】:
-
试试
SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) FROM DUAL; -
@JohnMitchell- 谢谢,但我想要 yyyy-mm-dd 格式的两年之间的差异。
-
从不,永远不要在已经是日期的值上调用
to_date()。这将首先将date值转换为varchar,然后将varchar转换回最初的date。 -
试试
SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) - TO_NUMBER(TO_CHAR(TO_DATE('1994-08-13', 'YYYY-MM-DD'), 'YYYY')) AS ANSWER FROM DUAL;输出=27