java判断一个月有多少天代码_java oracle 查询一个月有多少天

查询月的天数

java

Calendar c= Calendar.getInstance();

c.set(Calendar.YEAR, nYear);

c.set(Calendar.MONTH, nMonth -1);

//这个时候由于2月没有30日,而今天是30日,所以c已经自动跳转到了3月了,所以你要在之前调用一次c.set(Calendar.DATE, 1);才可以保证不出现这个问题

c.set(Calendar.DATE, 1);

return c.getActualMaximum(Calendar.DAY_OF_MONTH);

// 获取当月第一天和最后一天

SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd");

String firstday, lastday;

// 获取前月的第一天

cale = Calendar.getInstance();

cale.add(Calendar.MONTH, 0);

cale.set(Calendar.DAY_OF_MONTH, 1);

firstday = format.format(cale.getTime());

// 获取前月的最后一天

cale = Calendar.getInstance();

cale.add(Calendar.MONTH, 1);

cale.set(Calendar.DAY_OF_MONTH, 0);

lastday = format.format(cale.getTime());

System.out.println("本月第一天和最后一天分别是 : "+ firstday +" and "+ lastday);

oracle

本月:

SELECT FDATE

FROM (SELECT TRUNC(SYSDATE, 'MONTH') + LEVEL - 1 AS FDATE,LEVEL

FROM DUAL

CONNECT BY LEVEL <= 31) T

WHERE TO_CHAR(FDATE, 'MM') = TO_CHAR(SYSDATE, 'MM');

时间段:

SELECT TO_CHAR(TO_DATE('2014-10-01', 'yyyy-MM-dd') + LEVEL - 1, 'yyyyMMdd') as daylist

FROM DUAL

CONNECT BY LEVEL <=

trunc(to_date('2015-06-01', 'yyyy-MM-dd') -

to_date('2014-10-01', 'yyyy-MM-dd')) + 1

查询年的月份

本年:

SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YEAR'), LEVEL - 1) AS MONTHLIST

FROM DUAL

CONNECT BY LEVEL <= 12

时间段:

SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2014-10', 'yyyy-MM'), ROWNUM - 1),

'yyyyMM') as monthlist

FROM DUAL

CONNECT BY LEVEL<=

months_between(to_date('2015-06', 'yyyy-MM'),

to_date('2014-10', 'yyyy-MM')) + 1

Java中与Oracle数据库交互时,判断是否存在下一页通常是通过查询数据集中是否还有更多数据来实现的。这可以通过多种方式完成,其中一种常见的方法是使用分页查询。分页查询的基本思想是限制返回的数据量,并且保留一个指针(通常是偏移量或者最大ID)来定位下一批数据的位置。 以下是一个简单的例子,展示了如何在Oracle数据库中使用`ROWNUM`来实现分页查询,以此来判断是否存在下一页: ```java import java.sql.*; public class PageableQueryExample { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { // 获取数据库连接 conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "username", "password"); // 假设每页显示10条数据 int pageSize = 10; // 当前页码,第一页为1,第二页为2,以此类推 int pageNumber = 1; // 计算分页起始位置,即上一页的最后一条数据的ID(这里假设有一个ID字段作为分页的依据) long startId = (pageNumber - 1) * pageSize + 1; // 构建分页查询SQL String sql = "SELECT * FROM (SELECT a.*, ROWNUM rnum FROM (SELECT * FROM your_table ORDER BY id) a WHERE ROWNUM <= ?) WHERE rnum > ?"; pstmt = conn.prepareStatement(sql); pstmt.setInt(1, startId + pageSize - 1); pstmt.setInt(2, startId); // 执行查询 rs = pstmt.executeQuery(); // 处理结果集,根据需要操作数据 // 如果查询结果中还有数据,说明有下一页 if (rs.next()) { System.out.println("存在下一页"); } else { System.out.println("没有下一页"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ``` 在上述代码中,我们使用了一个子查询来首先按照`id`排序获取所有数据,然后在外层查询中通过`ROWNUM`来限制结果数量。通过检查`rs.next()`来判断是否还存在下一页的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值