【发布时间】:2013-12-27 14:32:41
【问题描述】:
我是新手,正在学习 Oracle。我想比较函数中的日期,在实现函数时我遇到了输出错误并且没有得到有效答案的问题我搜索了很多解决方案但徒劳无功....
目前我找到的解决方案是:
不要比较日期时间和日期。
如果使用 DateTime,则需要先 TRUNC 以去除时间因素。
比较日期时首先将日期转换为 To_char(anyDate,'dd-mon-yyyy');
如果我们比较像 1-dec-13 和 27-dec-13 这样的日期,请确保两个年份相同。两者都应该是 2013 年的。
到目前为止,我已经通过了所有的限制,但未能找到解决方案。有谁能够帮我。我在做什么错误?提前感谢您的期待。
SET serveroutput on;
DECLARE
startDate DATE := to_date('1'|| '/' ||to_char(sysdate, 'MM') || '/2013','DD/MM/YYYY');
secDate DATE :=to_date(SYSDATE, 'DD/MM/YYYY ');
BEGIN
DBMS_OUTPUT.PUT_LINE( 'if secDate '|| secDate ||' is Greater Then');
DBMS_OUTPUT.PUT_LINE( 'StartDate '|| startDate || ' Output = ' );
if(secDate>startDate)
then
DBMS_OUTPUT.PUT_LINE('True' );
else
DBMS_OUTPUT.PUT_LINE('false');
end if;
end;
【问题讨论】:
-
I got an issue有什么问题? -
@NicholasKrasnov 我已经编辑了这个问题。
-
您期望 pl/sql 块应该“打印”什么?
that output is wrong and not getting a valid answer什么是适合您的输出?输出很可能是true。你期望它是什么? -
如果 secDate 是 > 那么 startDate 它应该打印 true 不是吗???
-
@YOusaFZai 是的,但现在它打印了
false。看看我的回答为什么。