扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
oracle中的date类型字段,截取年份可用to_char函数。
成都创新互联公司专注于麦盖提网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供麦盖提营销型网站建设,麦盖提网站制作、麦盖提网页设计、麦盖提网站官网定制、成都小程序开发服务,打造麦盖提网络公司原创品牌,更为您提供麦盖提网站排名全网营销落地服务。
工具:oracle 10g
步骤:
1、如emp表中有hiredate字段为date类型的数据。
2、截取其中的年份部分,用如下语句:
select empno,ename,job,mgr,to_char(hiredate,'yyyy'),sal,comm,deptno from emp;
3、运行后结果,可以看出年份已将截取出来了:
Oracle数据库中从时间中截取日和月
TO_CHAR( SYSDATE, 'DD' ) 这个是从 SYSDATE 中,取得 日的数据
TO_CHAR( SYSDATE, 'MM' ) 这个是从 SYSDATE 中,取得 月的数据
你的 createtime 到底是 date类型,还是 varchar2类型:
如果是date类型,那么:
select to_char(createtime ,'yyyy-mm-dd') from table;
如果是varchar2类型,那么:
select to_char(to_date(createtime,'yyyy年mm月dd日 hh24:mi:ss') ,'yyyy-mm-dd') from table;
to_date()函数是把字符串转换为日期的,比如你的字段是date类型
那么这样就可以了
字段名 Between to_date('20120725080000','yyyymmddhh24miss') And to_date('20120730080000','yyyymmddhh24miss')
这个就是截取2012年7月25日8点到30日8点的数据
数据库里的字段是char(varchar2) 还是date?
date 型只需转一次 to_char(colname,'YYYYMMDD') 即可。
char(varchar2) 的处理方式比较多,简单的方式是 先转成date,再转成char
to_char(to_date(colname,‘YYYY/MM/DD HH24:MI:SS’) ,'YYYYMMDD')。
你to_date以后,后面只是指定显示的格式,并不是这个日期实际的值
实际的值应该是'01-9月 -12'
你substr以后当然是01-9了
你可以转化成string再进行substr
substr(to_char(to_date('2012-09-01', 'yyyy-mm-dd'),'yyyy-mm-dd'),1, 4)
不过这是多此一举,你可以直接
to_char(to_date('2012-09-01', 'yyyy-mm-dd'),'yyyy')
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流