oracle中如何用sql语句实现 如果 表中年=系统当前年 则 表中月=系统当前月
4个回答
展开全部
select to_char(sysdate,'YYYY-MM-DD') as 日期, to_char(sysdate,'YYYY') as 年,to_char(sysdate,'MM') as 月,to_char(sysdate,'DD') as 日 from dual
更多追问追答
追问
这只是查询系统时间吧 并没有按照我的条件查询啊
追答
如果 表中年=系统当前年 则 表中月=系统当前月
select * from table where 年份=to_char(sysdate,'YYYY') and 月份=to_char(sysdate,'MM')
不对吗? 按照你的字面解理就是这样的呀。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL> select to_char(t.ttime,'yyyy-mm-dd hh24:mi:ss') from tb t;
TO_CHAR(T.TTIME,'YYYY-MM-DDHH2
------------------------------
2013-07-11 17:18:12
2013-06-11 18:18:12
2013-05-11 19:18:12
2011-02-11 17:18:12
2012-03-11 17:18:12
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
------------------------------
2013-07-11 17:41:07
SQL>
SQL> select to_char(s.ca, 'yyyy-mm-dd hh24:mi:ss')
2 from (select (case
3 when to_char(t.ttime, 'yyyy') = to_char(sysdate, 'yyyy') then
4 sysdate
5 else
6 t.ttime
7 end) ca
8 from tb t) s;
TO_CHAR(S.CA,'YYYY-MM-DDHH24:M
------------------------------
2013-07-11 17:41:10
2013-07-11 17:41:10
2013-07-11 17:41:10
2011-02-11 17:18:12
2012-03-11 17:18:12
SQL>
楼主请仔细看。
TO_CHAR(T.TTIME,'YYYY-MM-DDHH2
------------------------------
2013-07-11 17:18:12
2013-06-11 18:18:12
2013-05-11 19:18:12
2011-02-11 17:18:12
2012-03-11 17:18:12
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
------------------------------
2013-07-11 17:41:07
SQL>
SQL> select to_char(s.ca, 'yyyy-mm-dd hh24:mi:ss')
2 from (select (case
3 when to_char(t.ttime, 'yyyy') = to_char(sysdate, 'yyyy') then
4 sysdate
5 else
6 t.ttime
7 end) ca
8 from tb t) s;
TO_CHAR(S.CA,'YYYY-MM-DDHH24:M
------------------------------
2013-07-11 17:41:10
2013-07-11 17:41:10
2013-07-11 17:41:10
2011-02-11 17:18:12
2012-03-11 17:18:12
SQL>
楼主请仔细看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
trunc(sysdate,'yy')=trunc(datecol,'yy')
trunc(sysdate,'mm')=trunc(datecol,'mm')
trunc(sysdate,'mm')=trunc(datecol,'mm')
更多追问追答
追问
不是更改表数据,只是查询表的时候,月为当前系统月
追答
是的呀,把这个放到条件中就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from
from tabxxx
where to_char(datecol,'yyyymm') = to_char(sysdate,'yyyymm')
from tabxxx
where to_char(datecol,'yyyymm') = to_char(sysdate,'yyyymm')
更多追问追答
追问
我主要是想查询当年的最大月份
例如去年就是12月份
今年的就是7月份
所以您的答案无法实现这功能啊
太固定了
追答
没有看明白你要干什么?
这是年度:
TO_CHAR(datecol,'YYYY')
这是月份:
case when TO_CHAR(datecol,'YYYY') < TO_CHAR(sysdate,'yyyy') then '12'
else to_char(sysdate,'mm') end
你自己看怎么用
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询