题目: 输入4个值[2008,12,2009,2], 要求一段SQL, 不另创新表, 得到如下结果:
12 2008-12-1 2008-12-31
01 2009-1-1 2009-1-31
02 2009-2-1 2009-2-28
条件: 起始年, 起始月, 截至年, 截至月
结果: 月份, 月的第一天, 月的最后一天
解答:
Sql代码
select to_char(tt.d, "mm"), tt.d, last_day(tt.d)?????
? from (select ADD_MONTHS(zz.s, rownum - 1) d?????
????????? from (select to_date("2008" || "12" || "01", "yyyymmdd") s,?????
?????????????????????? to_date("2009" || "02" || "01", "yyyymmdd") e?????
????????????????? from dual) zz,?????
?????????????? (select * from user_objects)?????
???????? where rownum <= MONTHS_BETWEEN(zz.e, zz.s) + 1) tt??
select to_char(tt.d, "mm"), tt.d, last_day(tt.d)??
? from (select ADD_MONTHS(zz.s, rownum - 1) d??
????????? from (select to_date("2008" || "12" || "01", "yyyymmdd") s,??
?????????????????????? to_date("2009" || "02" || "01", "yyyymmdd") e??
????????????????? from dual) zz,??
?????????????? (select * from user_objects)??
???????? where rownum <= MONTHS_BETWEEN(zz.e, zz.s) + 1) tt
分析: 这个题目比较难, 因为考察了很多的Oracle特有的函数,表(视图).
rownum 行号
ADD_MONTHS 日期函数,给一个日期加一个月数,得到这个月数后的日期
to_date 日期函数, 将一个字符以一定格式转成日期
to_char 字符函数, 以一定格式得到字符
last_day 日期函数, 得到某日所在月的最后一天
MONTHS_BETWEEN 日期函数, 得到两个日期间隔的月数
user_objects 是Oracle提供的视图
详细解决方案
一个Oracle面试标题 [日期间隔按格式输出]
热度:2102 发布时间:2013-02-26 00:00:00.0
相关解决方案
- 求教,SSH + ORACLE 日期处理有关问题
- hibernate 连接 oracle session 有关问题
- eclipse+tomcat6.0+oracle 10g配置数据库连接池的异常
- java 生成 word 封存到 oracle 数据库
- oracle 最大连市接数 为什么main方法无限拿连接
- oracle 分页排序,ssi,该怎么处理
- oracle 最近的时间(而不是前一天的时间) 跪求sql语句 。解决方法
- java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:192.168解决思路
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver,该怎么处理
- Jsp + Oracle 怎么取回id,报错getInt not implemented for class oracle.jdbc.driver.T4CRo
- oracle 调用java程序,该如何处理
- oracle,该怎么解决
- 在 Hibernate3 查询不到 Oracle 11g 里的记录
- Oracle 评论排序!该怎么解决
- oracle 安装时出现 java tm 异常
- android访问其他数据库(如:oracle、MySql等),希望大家给点建议!解决方案
- oracle sql 有关问题
- oracle 安插 LONG VARCHAR 类型数据
- jdbc+oracle 11中文乱码(英文一般)-在线盼
- ORACLE 一条SQL的有关问题
- oracle loadjava如何用
- netbeans desktop Application 连 Oracle 数据库的有关问题
- Oracle 每天数据备份
- oracle,该如何处理
- C# + SQL server +oracle QQ交流群142703980解决方法
- 求 dotConnect for Oracle 控件破解解决方法
- grove 怎么连 oracle 数据库
- 怎么跟踪winform应用程序发送到数据库的sql(oracle、mssql)
- 小弟我在windows 2008 r2下,使用OleDB方式访问oracle时,提示:未在本地计算机下注册“OraOleDB.Oracle”提供程序
- , 每次玩ASP都会遇到一些恶心的有关问题, 这次是:未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项