截取年月的问题,但是不可以用to_char函数

mchowie 2011-01-23 04:30:06
问下oracle 的问题,只截取年月的比如
select to_char(sysdate,'yyyymm') from dual
有没有不用to_char函数来截取年月的办法?
...全文
407 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fdc123 2011-02-09
  • 打赏
  • 举报
回复
同意头上的 to_char()是最好的 为什么不用呢?
10975037 2011-02-09
  • 打赏
  • 举报
回复
to_char() 简单,并且效率高。为什么不用
用 SELECT extract(YEAR FROM SYSDATE) || extract(MONTH FROM SYSDATE) FROM dual;
效率低,在优化sql中最好不用||
luoyoumou 2011-02-09
  • 打赏
  • 举报
回复
-- to_char()只是将日期数据以怎样的格式显示出来,要截取日期,可以用trunc()函数,
-- 实例如下:
sys@SZTYORA> conn / as sysdba
已连接。
sys@SZTYORA> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

会话已更改。

sys@SZTYORA> select sysdate from dual;

SYSDATE
-------------------
2011-02-09 10:43:32

sys@SZTYORA> select trunc(sysdate) from dual;

TRUNC(SYSDATE)
-------------------
2011-02-09 00:00:00

sys@SZTYORA> select trunc(sysdate,'mm') from dual;

TRUNC(SYSDATE,'MM')
-------------------
2011-02-01 00:00:00

sys@SZTYORA> select trunc(sysdate,'yyyy') from dual;

TRUNC(SYSDATE,'YYYY
-------------------
2011-01-01 00:00:00

sys@SZTYORA> select trunc(sysdate,'ww') from dual;

TRUNC(SYSDATE,'WW')
-------------------
2011-02-05 00:00:00
rongliangchen 2011-02-09
  • 打赏
  • 举报
回复
好好的 TO_CHAR 为什么不用呢,用其它办法更麻烦
hezhanyan 2011-01-31
  • 打赏
  • 举报
回复
学习 谢了
minitoy 2011-01-23
  • 打赏
  • 举报
回复
to_char应该是最简单的了
minitoy 2011-01-23
  • 打赏
  • 举报
回复
SQL> SELECT extract(YEAR FROM SYSDATE) ||
2 lpad(extract(MONTH FROM SYSDATE), 2, '0')
3 FROM dual;

EXTRACT(YEARFROMSYSDATE)||LPAD
--------------------------------------------
201101

SQL>
minitoy 2011-01-23
  • 打赏
  • 举报
回复
SQL> SELECT extract(YEAR FROM SYSDATE) || extract(MONTH FROM SYSDATE) FROM dual;

EXTRACT(YEARFROMSYSDATE)||EXTR
--------------------------------------------------------------------------------
20111

SQL>

17,377

社区成员

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

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