Oracle中获取某个日期所在周和所在月的每一天

首先介绍一下trunc()函数的用法:

trunc()函数是对时间类型或者数字进行截取操作的。 
用法:

trunc(Date,“fmt”),其中fmt 是我们要展示的时间字段,

trunc(number),该函数表示取整。

SQL:

select trunc(sysdate,'yyyy') from dual;/*返回当前年的第一天*/
select trunc(sysdate, 'mm') from dual;/*返回当前月的第一天*/
select trunc(sysdate, 'dd') from dual;/*返回当前时间的年月日*/
select trunc(sysdate,'iw') from dual;/*以周一为一周开始*/
select trunc(sysdate,'d') from dual;/*以周日为一周开始*/
select trunc(sysdate, 'hh') from dual;/*返回当前小时*/

现在我们能获取到某一周或月的第一天,只要再获取到最后一天即可,周的话每周固定七天,所以只需要获取月的最后一天即可;

SQL:

select to_char(last_day(sysdate),'dd') from dual;/*根据传入日期获取其所在月份最后一天*/

将sysdate替换为我们传入的日期即可(注:last_day()只接受date类型,所以传入的是String类型的话,需要使用to_date()转换一下)

然后使用CONNECT BY和ROWNUM结合:其中CONNECT BY的用法鄙人理解为java中的for循环ROWNUM为i

因此,可以利用CONNECT BY 根据开始日期输出每一个后边的日期知道ROWNUM<每周/月最后一天

SQL:

 /*一周内每一天的日期*/
  SELECT TO_CHAR((trunc(to_date('2018-12-13','yyyy-mm-dd'), 'iw')) + ROWNUM - 1, 'yyyy-MM-dd') as time_date FROM DUAL
  CONNECT BY ROWNUM <= 7 

  /*一月内每一天的日期*/
  SELECT TO_CHAR((trunc(to_date('2018-12-13','yyyy-mm-dd'), 'mm')) + ROWNUM - 1, 'yyyy-MM-dd') as time_date FROM DUAL
  CONNECT BY ROWNUM <= to_char(last_day(to_date('2018-12-13','yyyy-mm-dd')),'dd')

这两条SQL返回的即是对应日期所在周和月的每一天,

最后将我们要查的表与之关联查询即可获得某一个月或某周内每一天的数据(注:关联字段为日期(time_date))

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-data-picker组件提供了两种日期选择模式:按天和按。可以通过设置picker-options属性来切换模式。具体操作如下: 1. 在父组件引入moment.js库,该库提供了对日期的处理方法。 2. 在el-data-picker组件设置picker-options属性,该属性包含了两个属性:shortcuts和onPick。shortcuts用于设置快捷选项,onPick用于设置日期选择回调函数。 3. 在shortcuts属性设置按和按天两个快捷选项,分别对应不同模式的日期选择。每个快捷选项包含两个属性:text和onClick。text用于设置快捷选项的文本,onClick用于设置点击快捷选项后的回调函数。 4. 在onPick属性设置日期选择回调函数。当用户选择日期后,该回调函数会被调用,可以在该函数处理选日期。 下面是一个示例代码,演示如何设置按和按天切换模式选日期: ```html <template> <el-data-picker v-model="date" type="daterange" :picker-options="pickerOptions" @pick="handleDatePick" ></el-data-picker> </template> <script> import moment from 'moment'; export default { data() { return { date: [], pickerOptions: { shortcuts: [ { text: '按', onClick(picker) { const end = moment(); const start = moment().subtract(1, 'week'); picker.$emit('pick', [start, end]); } }, { text: '按天', onClick(picker) { const end = moment(); const start = moment().subtract(1, 'day'); picker.$emit('pick', [start, end]); } } ] } }; }, methods: { handleDatePick(date) { console.log(date); } } }; </script> ``` 在该示例,picker-options属性包含了两个快捷选项:按和按天。当用户点击按快捷选项时,会选择最近一日期范围,当用户点击按天快捷选项时,会选择最近一天日期范围。在handleDatePick方法,会输出选日期范围。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值