在sql中怎样截取时间?

 我来答
匿名用户
推荐于2017-08-22
展开全部
在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数据库
秃叭鹊孔寡倍R
2013-02-07 · 超过18用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:41.5万
展开全部
参考做法:
1.用Replace()函数把时间中的“年”,“月”用“-”进行替换,
2.再转换成Datetime类型数据,用Month(),Year()函数获取月和时间

select month(cast(replace(replace(@timeStr,'年','-'),'月','-') as datetime))

或者使用原始的方法 用“年”,“月”来定位获取“年”前的数据位年,“年”“月”之间的数据位月;

上边这种方法应该方便一点,同时注意转换的格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kuer200906
2013-02-07 · TA获得超过812个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:118万
展开全部
截取字符串,再转为日期格式
SELECT CONVERT(DATE,SUBSTRING('2013年10月',1,4)+SUBSTRING('2013年10月',6,2)+'01',108)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-15
展开全部
select trunc(sysdate,'yyyy') from dual;
yyyy 是截取年
yyyy-mm 是年和月
yyyy-mm-dd 是 年 月 天
mi 分
ss秒
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-02-07 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5162万
展开全部
select left(col,4) as 年,substring(col,6,charindex('月',col)-charindex('年',col)-1) as 月
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式