编程回忆之数据库回忆(oracle时间格式设置)

 

    我们尝试着去建立一个名叫my_time的表,然后从这个表里面查询当前时间数据

-----------使用默认格式
select Sysdate from my_time
-----------查询当前年
select to_char(sysdate,'yyyy') as 年 from my_time
-----------查询当年月
select to_char(sysdate,'mm') as 月 from my_time
-----------查询当前日
select to_char(sysdate,'dd') as 日 from my_time
------------查询第几周(ww的算法为每年1月1日为第一周开始,date+6为每一周结尾)
select to_char(sysdate,'iw') as 周一到周日为一周 from my_time
------------查询第几周(iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周)
select to_char(sysdate,'ww') as 一月一日加6为一周类推 from my_time
------------查询时分秒(24小时进制)
select to_char(sysdate,'HH24:mi:ss') as 时分秒 from my_time
------------查询某年某月某日某时某分某秒
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as 年月日时分秒 from my_time

时间分组:

--根据年分组
select to_char(sysdate,'yyyy') as 年 from dual
--根据月分组
select to_char(sysdate,'yyyy-mm') as 年 from dual
--根据天分组
select to_char(sysdate,'yyyy-mm-dd') as 年 from dual
--根据周分组
select to_char(sysdate,'yyyy-iw') as 年 from dual
select to_char(sysdate,'yyyy-ww') as 年 from dual

注意:

按照周进行分组会出现问题:如:2012年12月31日 是周一所以就会归结到2013年的第一周中,iw查询出来的结果是01但是yyyy对应的是还2012所以就和2012年一月的第一周无法区分开。

方法二:

查询出指定日期所在周的开始结束的时间:

--规定每周是从周一开始,周末结束
select next_day(sysdate,2)-7 from dual --得到周一
select next_day(sysdate,1) from dual --得到周末


next_day()  获取下一个周日(1),一(2),二(3),三(4),四(5),五(6),六(7)

用中文也是可以的:

--规定每周是从周一开始,周末结束
select next_day(sysdate,'星期一')-7 from dual --得到周一
select next_day(sysdate,'星期日') from dual --得到周末

得到日期范围后将这个范围拼接在一起进行分组就可以了

--根据省份分组,省份列种包含市(福建福州,黑龙江牡丹江)
/*
思路:1.先用substr(列明,开始位置第一个为1,截取字数)来切割省份列
      2.截取后黑龙江变成黑龙后要恢复回来  
      case  
      when substr(列名,1,2) like '黑龙' then '黑龙江'
      when substr(列名,1,2) like '内蒙' then '内蒙古'
      else 
      to_char(substr(列明,1,2))
      end
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值