Oracle计算时间差表达式
--取第几天的数据。
select * from table where trunc(sysdate)-trunc(cr)=1;
select * from table where trunc(sysdate)-trunc(cr)=2;
select * from table where trunc(sysdate)-trunc(cr)=8;
--获取两时间的相差豪秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒数 FROM DUAL;
/*
相差豪秒数
----------
86401000
1 row selected
*/
--获取两时间的相差秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60) 相差秒数 FROM DUAL;
/*
相差秒数
----------
86401
1 row selected
*/
--获取两时间的相差分钟数
select ceil(((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) * 24 * 60) 相差分钟数 FROM DUAL;
/*
相差分钟数
----------
1441
1 row selected
*/
--获取两时间的相差小时数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24) 相差小时数 FROM DUAL;
/*
相差小时数
----------
25
1 row selected
*/
--获取两时间的相差天数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) 相差天数 FROM DUAL;
/*
相差天数
----------
2
1 row selected
*/
--获取两时间月份差
select (EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd'))) * 12 +
EXTRACT(month FROM to_date('2008-05-01','yyyy-mm-dd')) - EXTRACT(month FROM to_date('2008-04-30','yyyy-mm-dd')) months
from dual;
/*
MONTHS
----------
13
1 row selected
*/
--获取两时间年份差
select EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) years from dual;
/*
YEARS
----------
1
1 row selected
*/
转载自:http://bbs.csdn.net/topics/320034969
分享到:
相关推荐
### Oracle时间差表达式详解 在Oracle数据库中,计算两个日期之间的时间差是一个常见的需求,尤其是在处理业务逻辑或数据报告时。本篇文章将详细介绍如何利用Oracle内置函数来精确计算两个日期之间的差值,并且能够...
本问题涉及的PDF文档“Oracle时间区间段合并.pdf”似乎提供了关于如何使用SQL来实现这一功能的方法。以下是对这个算法的详细解释: 首先,我们需要理解数据结构。在这个例子中,我们有一个名为`TAB_0`的表,包含`...
- **精度问题**: Oracle中的日期数据类型支持到秒的精度,但在计算日期差时,默认仅返回天数差。 - **NULL值处理**: 如果输入的日期字符串为NULL,则`TO_DATE`函数将返回NULL值。 ### 三、实际应用场景示例 假设有...
如果需要计算其他单位(如小时、分钟或秒)的时间差,可以使用`TIMESTAMPDIFF()`函数,它接受一个单位参数(如SECOND, MINUTE, HOUR, DAY等)和两个日期/时间表达式: ```sql SELECT TIMESTAMPDIFF(HOUR, '2012-...
3. **DATEPART**:SQL Server中的一个内置函数,用于从日期或时间表达式中提取指定的部分。 4. **DATEFIRST**:设置SQL Server识别的一周的第一天。默认值为1(星期日)。 #### SQL工作日计算函数详解 下面详细...
- **Oracle**: 使用 `SYSDATE` 获取当前系统日期时间,可以通过 `TO_CHAR` 函数将其格式化。 - **PostgreSQL**: 使用 `CURRENT_DATE` 或 `CURRENT_TIMESTAMP` 获取当前日期或日期时间,并通过 `TO_CHAR` 函数进行...
- `STDDEV_POP(expr1)` 和 `STDDEV_POP(expr2)` 分别计算表达式的总体标准差。 相关系数是一个介于-1到1之间的数值,用于衡量变量之间的线性关系强度: - 如果相关系数接近1,则表示两个变量正相关,即一个变量增加...
- **时间转换和处理**: 包括求两个日期之间天数、月份差、处理时间格式冲突、计算日期列表中的最晚日期、计算时间差、查找月的第一天和最后一天等。 - **Next_day**: 查找指定日期后的第一个指定星期的日期。 - **...
上架时间:2010-5-26 出版日期:2010 年6月 开本:16开 页码:1240 版次:1-1 定价 :¥158.00 内容简介 本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大...
上架时间:2010-5-26 出版日期:2010 年6月 开本:16开 页码:1240 版次:1-1 定价 :¥158.00 内容简介 本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大...
5. STDDEV()和VARIANCE():计算标准差和方差,用于衡量数据的离散程度。 6. RANK(), DENSE_RANK(), ROW_NUMBER():在分组查询中提供行号排序,常用于排名和窗口函数。 四、其他重要函数 1. NVL()和COALESCE():...
- `MONTHS_BETWEEN()`:计算两个日期之间的月数差。 - `TRUNC()`:截断日期到指定的精度(如年、月、日)。 4. 转换函数: - `TO_CHAR()`:将日期、数字等转换为字符串。 - `TO_DATE()`:将字符串转换为日期。 ...
在实际应用中,分析函数通常用于复杂的业务报表,例如,计算每个员工相对于其同事的工资偏差,或者在时间序列数据中计算趋势。通过熟练掌握这些分析函数,你可以编写出更高效、更具洞察力的SQL查询,从而更好地理解...
4. **CURRENT_DATE** 和 **LOCALTIMESTAMP**:这两个表达式类似于SYSDATE,但CURRENT_DATE返回的是UTC时间,LOCALTIMESTAMP则包含时间区信息。 在实际应用中,我们可能会遇到日期条件查询,如“找出所有在过去一周...
- `MONTHS_BETWEEN()`:计算两个日期之间的月数差。 - `TO_CHAR()` 和 `TO_DATE()`:将日期转换为字符串或将字符串转换为日期。 4. **条件判断函数** - `IFNULL()` 或 `NVL()`:如果表达式结果为NULL,则返回...
以上是对Oracle系统内置函数大全的知识点介绍,内容涵盖了字符处理、数字计算、日期处理、数据类型转换、分组聚合等多个方面的函数。Oracle数据库管理员和开发人员经常需要用到这些函数以实现各种数据处理需求。
- `MONTHS_BETWEEN(date1, date2)`:计算两个日期之间的月数差。 - `TRUNC(date, [format])`:截断日期到指定的精度,如年、月、日或小时。 2. **字符函数**: - `LOWER(string)` 和 `UPPER(string)`:将字符串...
* MONTHS_BETWEEN:计算两个日期之间的月份差 * ADD_MONTHS:将月份添加到日期中 * NEXT_DAY:计算下一个日期 * LAST_DAY:计算当前月份的最后一天 * ROUND:将日期舍入到指定的格式 * TRUNC:将日期截断到指定的...