在sql中怎样截取时间?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql中怎样截取时间?相关的知识,希望对你有一定的参考价值。
在sql中怎样截取时间?把日期截取为月份有以下几种办法:
1、日期为日期格式,这种最简单,使用Month()函数即可获取月份,如:
1
select month(getdate()) from dual
2、日期为yyyy-mm-dd格式的文本,这种情况下需要转换成日期格式再截取,如:
1
select TO_CHAR(to_date(\'2013-01-01\', \'yyyy-MM-dd\'), \'yyyyMM\') dateStr from dual
3、日期格式为其他格式,如yyyymmdd或yyyy/mm/dd的,此类格式类似第二种格式可以用类似的语句进行查询,只是转换成日期的时候的格式不一样。
注:以上SQL均基于ORACLE数据库 参考技术A 参考做法:
1.用Replace()函数把时间中的“年”,“月”用“-”进行替换,
2.再转换成Datetime类型数据,用Month(),Year()函数获取月和时间
select month(cast(replace(replace(@timeStr,'年','-'),'月','-') as datetime))
或者使用原始的方法 用“年”,“月”来定位获取“年”前的数据位年,“年”“月”之间的数据位月;
上边这种方法应该方便一点,同时注意转换的格式 参考技术B 截取字符串,再转为日期格式
SELECT CONVERT(DATE,SUBSTRING('2013年10月',1,4)+SUBSTRING('2013年10月',6,2)+'01',108) 参考技术C select trunc(sysdate,'yyyy') from dual;
yyyy 是截取年
yyyy-mm 是年和月
yyyy-mm-dd 是 年 月 天
mi 分
ss秒 参考技术D select left(col,4) as 年,substring(col,6,charindex('月',col)-charindex('年',col)-1) as 月
SQL里怎么把日期截取为月份
参考技术A 把日期截取为月份有以下几种办法:1、日期为日期格式,这种最简单,使用Month()函数即可获取月份,如:
select month(getdate()) from dual2、日期为yyyy-mm-dd格式的文本,这种情况下需要转换成日期格式再截取,如:
select TO_CHAR(to_date('2013-01-01', 'yyyy-MM-dd'), 'yyyyMM') dateStr from dual3、日期格式为其他格式,如yyyymmdd或yyyy/mm/dd的,此类格式类似第二种格式可以用类似的语句进行查询,只是转换成日期的时候的格式不一样。
注:以上SQL均基于ORACLE数据库 参考技术B select TO_CHAR(to_date('2013-01-01', 'yyyy-MM-dd'), 'yyyyMM') dateStr from dual; 通过数据库转换函数可以实现。请采纳~~
以上是关于在sql中怎样截取时间?的主要内容,如果未能解决你的问题,请参考以下文章