Oracle 时间&日期&时间戳查询整理

本文整理了Oracle中关于时间、日期和时间戳的查询方法,包括获取年份、月份、日期的全集,查询星期,排除周末日期,获取本周日期,使用EXTRACT、NUMTODSINTERVAL、NumToYMInterval进行时间计算,以及时间戳与日期之间的转换等操作。
摘要由CSDN通过智能技术生成

1、获得当年一年的全部日期:

SELECT TRUNC(SYSDATE, 'YY') + ROWNUM - 1 FROM DUAL CONNECT BY ROWNUM <= 365;

获取当期日前往前推1年到现在的所有日期:

SELECT ADD_MONTHS(SYSDATE,-12) + ROWNUM - 1 FROM DUAL CONNECT BY ROWNUM <= 365;

获取当前日期往前推12个月的所有年月

SELECT TO_CHAR(ADD_MONTHS(SYSDATE,ROWNUM - 13),'YYYYMM') FROM DUAL CONNECT BY ROWNUM <= 12

2、获得当年一月的全部日期:

SELECT TRUNC(SYSDATE, 'YY') + ROWNUM - 1 FROM DUAL CONNECT BY ROWNUM <= 31;

3、获得2018年10月的全部日期:

SELECT TRUNC(to_date('2018-10-09','yyyy-mm-dd'), 'MM') + ROWNUM - 1 FROM DUAL CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(LAST_DAY(to_date('2018-10-09','yyyy-mm-dd')), 'DD'));

4、查询星期几:

select to_char(sysdate,'day') day from dual;

select to_char(sysdate, 'DY') from dual;

5、整年的非周末日期:

select dy, to

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java代码示例,可以查询两个时间戳之间包含的日期: ```java import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class DateUtil { /** * 获取两个时间戳之间包含的日期列表 * @param startTimestamp 开始时间戳 * @param endTimestamp 结束时间戳 * @return 包含的日期列表 */ public static List<String> getDateList(long startTimestamp, long endTimestamp) { List<String> dateList = new ArrayList<>(); // 将时间戳转换为日期 Date startDate = new Date(startTimestamp); Date endDate = new Date(endTimestamp); // 获取日历实例 Calendar calendar = Calendar.getInstance(); // 将日历设置为开始日期 calendar.setTime(startDate); // 循环添加日期 while (calendar.getTime().before(endDate) || calendar.getTime().equals(endDate)) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); dateList.add(format.format(calendar.getTime())); // 将日历日期加1天 calendar.add(Calendar.DAY_OF_MONTH, 1); } return dateList; } } ``` 使用示例: ```java public static void main(String[] args) { long startTimestamp = 1622505600000L; // 2021-06-01 00:00:00 long endTimestamp = 1625097600000L; // 2021-07-01 00:00:00 List<String> dateList = DateUtil.getDateList(startTimestamp, endTimestamp); for (String date : dateList) { System.out.println(date); } } ``` 输出结果: ``` 2021-06-01 2021-06-02 2021-06-03 2021-06-04 2021-06-05 2021-06-06 2021-06-07 2021-06-08 2021-06-09 2021-06-10 2021-06-11 2021-06-12 2021-06-13 2021-06-14 2021-06-15 2021-06-16 2021-06-17 2021-06-18 2021-06-19 2021-06-20 2021-06-21 2021-06-22 2021-06-23 2021-06-24 2021-06-25 2021-06-26 2021-06-27 2021-06-28 2021-06-29 2021-06-30 2021-07-01 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值