Sql oracle日期时间未正确比较
我在做两天的比较 2016年1月1日21:01:00和2015年12月31日00:12:00 使用此代码,结果应为1,但显示为0Sql oracle日期时间未正确比较,sql,oracle,datetime,oracle11g,oracle10g,Sql,Oracle,Datetime,Oracle11g,Oracle10g,我在做两天的比较 2016年1月1日21:01:00和2015年12月31日00:12:00 使用此代码,结果应为1,但显示为0 select case when ('01/01/2016 21:01:00' >= (to_char(trunc(sysdate,'YEAR')-1 ,'dd/mm/yyyy HH24:MM:SS') ) ) then 1 else 0 end as Result FROM dual 有人能告诉我哪里做错了吗?您正在比较字符串而不是日期: select
select
case when ('01/01/2016 21:01:00' >= (to_char(trunc(sysdate,'YEAR')-1 ,'dd/mm/yyyy HH24:MM:SS') )
)
then 1 else 0 end as Result
FROM dual
有人能告诉我哪里做错了吗?您正在比较字符串而不是日期:
select case
when TO_DATE( '2016-01-01 21:01:00', 'YYYY-MM-DD HH24:MI_SS' )
>= trunc(sysdate,'YEAR')-1
then 1
else 0
end as Result
FROM dual
您正在比较字符串而不是日期:
select case
when TO_DATE( '2016-01-01 21:01:00', 'YYYY-MM-DD HH24:MI_SS' )
>= trunc(sysdate,'YEAR')-1
then 1
else 0
end as Result
FROM dual
比较一下这些年怎么样
select (case when substr('01/01/2016 21:01:00', 7, 4) >= to_char(sysdate - interval '1' year, 'YYYY')
then 1 else 0
end) as Result
FROM dual;
你的逻辑是日期和字符逻辑的大杂烩。比较年份如何
select (case when substr('01/01/2016 21:01:00', 7, 4) >= to_char(sysdate - interval '1' year, 'YYYY')
then 1 else 0
end) as Result
FROM dual;
您的逻辑是日期和字符逻辑的大杂烩。选择大小写
何时到字符(到日期('2016-01-01 21:01:00','YYYY-MM-DD HH24:MI_SS'),'yy')+0>=到字符(系统日期,'yy')-1
那么1
其他0
结果
来自双重 选择案例
何时到字符(到日期('2016-01-01 21:01:00','YYYY-MM-DD HH24:MI_SS'),'yy')+0>=到字符(系统日期,'yy')-1
那么1
其他0
结果
来自双重 比较字符串,而不是日期。比较字符串,而不是日期。