题目: 输入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 面试题目详解 #### 1. 创建表空间 **题目描述:** 创建一个名为`neuspace`的表空间,其中包含一个数据文件`neudata.dbf`,该文件位于`D:\data`目录下,并且初始大小为200MB。配置该数据文件可以自动扩展...
1. **创建`SimpleDateFormat`实例**:通过`new java.text.SimpleDateFormat("yyyy-MM-dd")`创建了一个`SimpleDateFormat`对象,其中`"yyyy-MM-dd"`指定了日期格式为四位数的年份、两位数的月份和两位数的日,中间用...
在 Oracle 中,可以使用不同的日期及时间格式,例如 YYYY-MM-DD、YYYY/MM/DD、DD/MM/YYYY 等,其中 YYYY-MM-DD 是最常用的日期格式。同时,Oracle 也提供了多种日期及时间格式的转换函数,例如 TO_DATE、TO_...
极详细oracle数据库面试题目汇总,按照这个思路去复习就可以了
以下是对Oracle笔试面试题目中涉及的一些关键知识点的详细解释: 1. **冷备份与热备份**: - **冷备份**:在数据库关闭后进行,简单且适用于所有模式,但不能在备份过程中使用数据库。 - **热备份**:在数据库...
### Oracle 设置日期格式 在Oracle数据库管理中,正确地设置日期格式对于数据处理至关重要。本文将详细介绍如何在Oracle环境中设置日期格式,包括通过会话级和系统级进行配置的方法,并探讨不同场景下的应用实例。 ...
Oracle是全球最大的企业级数据库管理系统提供商,其面试题目通常涵盖了数据库管理、SQL查询、性能优化、备份恢复等多个方面。以下是一些可能出现在Oracle面试中的重要知识点及其详细解答,帮助你轻松应对面试官。 1...
以下是一个关于如何设置日期格式并查询日期数据的例子: ```sql -- 设置会话级别的日期格式 ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'; -- 查询当前系统的日期 SELECT SYSDATE FROM DUAL; -- 结果将会...
Oracle 数据库面试题目汇总 本资源摘要信息将涵盖 Oracle 数据库面试题目汇总的关键知识点,涵盖字符串操作函数、事务概念、查询系统时间、触发器的作用、数字函数、关系数据库系统与文件数据库系统的区别、触发器...
- **实例**:一个运行的 Oracle 数据库环境。每个实例可以包含多个数据库用户。 - **用户**:代表一个登录数据库的实体。一个用户只能在一个实例下操作。 ### 4. 创建数据库时自动建立的 Tablespace 名称 - **...
20. **$ORACLE_HOME与$ORACLE_BASE**:$ORACLE_BASE是Oracle软件安装的基础目录,而$ORACLE_HOME是具体的产品安装路径,通常位于$ORACLE_BASE下的一个子目录。 以上内容涵盖了Oracle数据库管理、备份恢复、性能优化...
【Oracle数据库面试题目详解】 1. 字符串操作函数: Oracle数据库提供了丰富的字符串处理函数,例如ASCII()用于获取字符的ASCII码,CHR()用于将ASCII码转换为字符,CONCAT()用于连接两个字符串,LOWER()和UPPER()...
个人收集的oracle面试题目,有的没有吧.
### Oracle日期时间数据类型与时间间隔数据类型详解 #### 23.1 概述:Oracle中的日期时间数据类型 在Oracle数据库中,日期时间数据类型主要包括`DATE`、`TIMESTAMP`及其变体(如`TIMESTAMP WITH TIME ZONE`、`...
Oracle_DBA笔试面试题目汇总,Oracle_DBA笔试面试题目汇总
本文将详细介绍一个自定义的Oracle函数`FN_ISDATE_JAVA`,该函数用于判断给定的字符串是否能够转换为有效的日期格式。 #### 函数概述 函数`FN_ISDATE_JAVA`的主要功能是验证输入的字符串是否符合日期格式...
Oracle 10G是Oracle数据库的一个重要版本,它在数据库管理、性能优化、安全性以及可扩展性方面都有着显著的特点。以下是一些Oracle 10G面试中可能会遇到的经典题目及详细解释: 1. **什么是Oracle数据库?** Oracle...
indate 是一个日期,表示要添加时间间隔的基准日期。 函数的实现主要通过使用 CASE 语句来判断 datepart 的类型,然后使用不同的方法来添加时间间隔。例如,如果 datepart 是 year,则使用 INTERVAL 语句来添加年份...
Oracle数据库是大型的事务处理系统,广泛应用于企业级应用。以下为文档中提取的Oracle相关知识点。 1. SQL语句书写:文档中展示了一个SQL查询的例子,使用了case...掌握这些知识点对于应对Oracle面试题目至关重要。