一简单语句,在线等,急@ ̄ ̄ ̄

ZiRRen 2007-01-23 11:19:33
数据库有year和month字段,想写一语句:

.... where year=当前的年 and month=当前月-1

如果当前时间是1月份的话,就变成了:

... where year=当前的年-1 and month='12'


希望一条语句能出来,谢谢! ̄ ̄
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiao1984 2007-01-23
  • 打赏
  • 举报
回复
SQL> select to_char(add_months(sysdate,-1),'yyyy') as year, to_char(add_months(sysdate,-1),'mm')
2 as month from dual;

YEAR MONTH
---- -----
2006 12

?.楼主确定自己没有写错?
ZiRRen 2007-01-23
  • 打赏
  • 举报
回复
还是不行,我说明一下,我这不是在oracle里面用,是在一支持它的设计器里用,所以请能在实现功能的前题下尽量简化。
zhubin61 2007-01-23
  • 打赏
  • 举报
回复
where year=decode(to_char(sysdate,'fmMM'),1,to_char(sysdate,'YYYY')-1,to_char(sysdate,'YYYY')) and month=decode(to_char(sysdate,'fmMM'),1,12,to_char(sysdate,'fmMM')-1);
ZiRRen 2007-01-23
  • 打赏
  • 举报
回复
兄弟不行啊。

错误来源: ORA-00936: 缺少表达式

xiaoxiao1984 2007-01-23
  • 打赏
  • 举报
回复
where year = to_char(add_months(sysdate,-1),'yyyy') and month = to_char(add_months(sysdate,-1),'mm')
ZiRRen 2007-01-23
  • 打赏
  • 举报
回复
恩,是服务嚣不同步的事,谢谢了。兄弟真热情!
xiaoxiao1984 2007-01-23
  • 打赏
  • 举报
回复
sysdate取得是数据库系统时间
楼主你修改的是客户端操作系统时间,还是数据库服务器的系统时间啊?
ZiRRen 2007-01-23
  • 打赏
  • 举报
回复
兄弟你写的确实能测出来,但是有一点问题不明白的?

当我把系统日期改成2005年1月.的时候,它还会能把2006年12月的数据查找出来。
当我把2006年12月的数据改成2006年1月,就是把数据库里的时间值改了,却查不出来。

那么应该是这条语句是对的,但是sysdate好像取的不是系统时间吧?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧