在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中怎样截取时间?的主要内容,如果未能解决你的问题,请参考以下文章

sql怎样定位一个字符所在的位置?

SQL里怎么把日期截取为月份

SQL里怎么把日期截取为月份

sql数据表里面取日期的年月日

关于sqlServer2005数据库字符串的截取?

请大家推荐asp截取字符 怎样过滤掉图片 只显示文本