Oracle 使用 months_between(ddd.s_date, S.VALID_BEGIN_DATE) 来计算月份的差值。
得出的是带小数的值。
SELECT P.PILOT_ID basicInfoId,
P.CLERK_CODE clerkCode,
P.PILOT_NAME pilotName,
S.RETRAINING_PLACE comId,
U.UNIT_NAME unitName,
S.MONTH1 month1,
S.MONTH2 month2,
S.VALID_BEGIN_DATE validBeginDate,
ddd.s_date,
months_between(ddd.s_date, S.VALID_BEGIN_DATE) AS monthnum,
CASE
WHEN SUBSTR(NVL(S.TECHNICAL_STANDARD, '21'), 0, 1) = '1' THEN
'机长'
ELSE
'副驾驶'
END technicalStandard,
S.NEXT_SCIAMACHY nextSciamachy,
S.NEXT_SCIAMACHY_TEACHER nextSciamachyTeacher,
S.TEACHER_STANDARD teacherStandard,
S.SKILLED_INSPECTOR_STAND_DATE skilledInspectorStandDate,
S.OFFICE_INSPECTOR_STAND_DATE officeInspectorStandDate,
S.VALID_END_DATE validEndDate,
S.LICENCE_END_DATE licenceEndDate,
S.NEXT_TEACHER_NUM nextTeacherNum
--S.MAIN_AC_TYPE_CODE mainAcTypeCode
FROM sim_v_pilot P, dc.v_pilot_licence_standard S, flight.BD_AERO_UNIT U, dc.bd_ac_type a,
(
SELECT max(m.s_date) AS s_date, n.pilot_id
FROM sim_training_sim m LEFT JOIN sim_student_assign n ON m.suite_id = n.suite_id
WHERE m.ac_type_code = 14 GROUP BY n.pilot_id
) ddd
WHERE P.PILOT_ID = S.PILOT_ID
AND U.UNIT_CODE = SUBSTR(P.ORG_CODE, 0, 4)
AND S.MAIN_AC_TYPE_CODE = '14'
and s.main_ac_type_code = a.ac_type_code
AND P.WORK_TYPE = '5201'
AND S.MONTH1 IS NOT NULL
AND S.MONTH2 IS NOT NULL
AND ddd.pilot_id = P.Pilot_Id
AND S.NEXT_SCIAMACHY = 1
AND (to_char(ddd.s_date, 'mm') - S.MONTH1 > 1 OR to_char(ddd.s_date, 'mm') - S.MONTH1 < -1)
分享到:
相关推荐
Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...
"Oracle 日期函数详解" Oracle 日期函数是数据库管理系统中经常使用到的函数,用于处理日期和时间相关的操作。下面是 Oracle 日期函数的详细介绍: 1. 日期和字符转换函数 Oracle 提供了两个重要的日期和字符转换...
本文将详细介绍一些常用的Oracle日期函数及其应用场景,帮助数据库管理员或开发者更好地理解和运用这些函数,以提高数据处理的效率和准确性。 #### 二、格式化日期 在Oracle中,`to_char()`函数被广泛用于将日期...
日期函数主要用于处理和操作日期数据,以下是一些主要的Oracle日期函数: 1. **MONTHS_BETWEEN(date1, date2)**: 计算date1和date2之间的月份数,结果是一个浮点数,精确到日。例如,MONTHS_BETWEEN('01-EP-95','11...
### Oracle日期时间函数概述 Oracle提供了丰富的日期时间处理功能,这使得开发人员能够方便地处理与日期时间相关的数据。在Oracle数据库中,日期时间数据类型包括DATE和TIMESTAMP两种。本篇文章将主要介绍日期相关...
涉及Oracle常用日期函数的用法、解析以及相关实例
针对标题"oracle日期时间判断函数"和描述中提到的内容,我们可以深入探讨两个关键的函数,它们主要用于判断字符串是否可以转换为合法的日期时间格式。 1. TO_DATE函数: TO_DATE是Oracle中用于将字符串转换为日期...
Oracle 中的 TRUNC 函数用法处理日期、数字类型数据 TRUNC 函数是 Oracle 中的一个重要函数,它可以用来截断日期和数字类型的数据。下面我们将详细介绍 TRUNC 函数的用法和特点。 一、日期 TRUNC 函数 TRUNC 函数...
Oracle 中的日期和时间函数可以应用于各种场景,例如: * 计算两个日期之间的天数:`SELECT FLOOR(SYSDATE - TO_DATE('20020405', 'YYYYMMDD')) FROM DUAL;` * 查找某个日期是星期几:`SELECT TO_CHAR(TO_DATE('...
### Oracle日期函数大礼包:初学者必学的知识 在Oracle数据库中,日期处理是一项非常重要的功能,尤其是在数据处理、报表生成以及各种业务逻辑实现时。本文将深入介绍Oracle中的日期函数,包括`TO_DATE`、`TO_CHAR`...
ORACLE日期时间函数大全:日期和字符转换函数用法(to_date,to_char),两个日期间的天数,月份差,日期格式冲突问题
### Oracle 日期函数集锦详解 #### 一、Oracle 常用日期数据格式 在 Oracle 数据库中,处理日期非常频繁,为了更好地理解和使用这些日期格式化功能,以下是一些常用的日期数据格式: 1. **Y/YY/YYYY**:表示年的...
总之,这个CHM文件是Oracle数据库开发者和管理员不可或缺的参考工具,它将帮助我们更好地理解和应用Oracle函数,从而优化我们的数据库操作,提高工作效率。对于初学者和经验丰富的专业人士来说,都是一个宝贵的资料...
日期和时间处理是数据库操作中常见的需求,Oracle的内置日期函数如SYSDATE获取当前系统日期,ADD_MONTHS()用于增加或减少月份,EXTRACT()可以从日期中提取年、月、日等部分,而TO_CHAR()和TO_DATE()则用于日期和字符...
下面将详细介绍Oracle中与这些需求相关的日期函数及其用法。 ### 一、获取当前日期 #### SYSDATE `SYSDATE` 是一个非常常用的日期函数,用于返回系统当前日期和时间。它不接受任何参数,直接调用即可: ```sql ...
Oracle 数据库中并没有直接使用 `CONVERT` 函数来处理日期和时间的方式,这个函数在 SQL Server 中被用来进行数据类型的转换,特别是日期和时间类型的转换。然而,Oracle 提供了类似的功能,如 `TO_DATE` 和 `TO_...
在这个"Oracle日期函数集锦"中,我们将深入探讨一系列常用的Oracle日期函数及其用法。 首先,我们来看日期数据的常见格式: 1. `Y`、`YY`、`YYY`:分别表示年份的最后一位、两位和三位。例如,`to_char(sysdate,'Y...
### ORACLE函数及其用法详解 #### 概述 Oracle是一种广泛使用的数据库管理系统,它提供了丰富的内置函数,这些函数能够帮助开发者和数据库管理员更高效地处理数据。本文将详细介绍Oracle中的一些常用函数及其应用...