Oracle常用函数:DateDiff() 返回两个日期之间的时间间隔自定义函数
(当然也有其他方法实现,在ORACLE里日期类型是可以直接进行比较的,最后会给出方法示例)
Create Or Replace Function CDate(Datechar In Varchar2) Return Date Is
ReallyDo Date;
Begin
Select to_date(to_char(to_date(to_char(Datechar), 'YYYY-MM-DD HH24:MI:SS'),
'YYYY-MM-DD'),
'YYYY-MM-DD')
Into ReallyDo
From Dual;
Return(ReallyDo);
End CDate;
Create Or Replace Function CDateTime(Datechar In Varchar2) Return Date Is
ReallyDo Date;
Begin
Select to_date(to_char(to_date(to_char(Datechar), 'YYYY-MM-DD HH24:MI:SS'),
'YYYY-MM-DD HH24:MI:SS'),
'YYYY-MM-DD HH24:MI:SS')
Into ReallyDo
From Dual;
Return(ReallyDo);
End CDateTime;
Create Or Replace Function Datediff
(
Datepart In Varchar2,
StartDate In Varchar2,
EndDate In Varchar2
) Return Number Is
ReallyDo Numeric;
Begin
Select Case Upper(Datepart)
When 'YYYY' Then
Trunc(Extract(Year From CDate(EndDate)) -
Extract(Year From CDate(StartDate)))
When 'M' Then
Datediff('YYYY', StartDate, EndDate) * 12 +
(Extract(Month From CDate(EndDate)) -
Extract(Month From CDate(StartDate)))
When 'D' Then
Trunc(CDate(EndDate) - CDate(StartDate))
When 'H' Then
Datediff('D', StartDate, EndDate) * 24 +
(to_Number(to_char(CDateTime(EndDate), 'HH24')) -
to_Number(to_char(CDateTime(StartDate), 'HH24')))
When 'N' Then
Datediff('D', StartDate, EndDate) * 24 * 60 +
(to_Number(to_char(CDateTime(EndDate), 'MI')) -
to_Number(to_char(CDateTime(StartDate), 'MI')))
When 'S' Then
Datediff('D', StartDate, EndDate) * 24 * 60 * 60 +
(to_Number(to_char(CDateTime(EndDate), 'SS')) -
to_Number(to_char(CDateTime(StartDate), 'SS')))
Else
-29252888
End
Into ReallyDo
From Dual;
Return(ReallyDo);
End Datediff;
当然也有其他方法实现
在ORACLE里日期类型是可以直接进行比较的。举个例子:
SQL> SELECT to_date('2011-10-05', 'yyyy-mm-dd') - to_date('2011-10-07', 'yyyy-mm-dd') FROM dual ;
TO_DATE('2011-10-05','YYYY-MM-DD')-TO_DATE('2011-10-07','YYYY-MM-DD')
---------------------------------------------------------------------
-2
这说明2011-10-05要比7号早2天。
SQL> SELECT to_date('2011-10-07 14:23:24' , 'yyyy-mm-dd hh24:mi:ss') + 1/24 FROM dual ;
TO_DATE('2011-10-07
-------------------
2011-10-07 15:23:24
SQL>
这是说明在某一时间上加一小时,1是代表一天,1/24就是一小时,同理1/24/60就是一分钟
分享到:
相关推荐
在Oracle数据库系统中,...总之,虽然Oracle没有内置的`DATEDIFF`函数,但通过上述方法,我们可以轻松地计算两个日期之间的差异。这显示了Oracle数据库系统的灵活性和强大功能,使其能够适应各种不同的需求和工作场景。
在Oracle数据库中,并未直接提供`DATEDIFF`函数来计算两个日期之间的差异。这与SQL Server等其他数据库系统有所不同,在那些系统中,`DATEDIFF`是一个常用且非常实用的功能。然而,在Oracle中我们可以通过自定义函数...
* DateDiff 函数:返回两个日期之间的间隔。 * DatePart 函数:返回给定日期的指定部分。 * DateSerial 函数:返回指定年月日的日期子类型的变体。 * DateValue 函数:返回日期子类型的变体。 逻辑运算符 * And ...
- DateDiff函数:计算两个日期之间的间隔。 - Second、Minute、Hour、Day、Month、Year、Weekday函数:分别返回时间或日期中的秒、分、时、日、月、年、星期几部分。 对于文件系统的操作,文档提到了如下函数和语句...
此外,Oracle还有日期时间函数,如SYSDATE获取当前系统日期,TO_DATE将字符串转换为日期格式,以及DATEADD和DATEDIFF等用于日期运算的函数。转换函数如TO_CHAR和TO_NUMBER分别用于将日期或数值转换为字符串和将字符...
在实际开发中,结合使用Delphi的日期处理函数和SQL的日期时间函数,可以构建出强大的数据处理和分析系统。例如,你可能需要在Delphi程序中获取当前日期,然后将这个日期插入到MSSQL数据库中,或者根据用户输入的日期...
* DateDiff:计算两个日期之间的差 * DatePart:返回某一日期某部分 目录和文件函数 VB 中提供了多种目录和文件函数,用于处理文件和目录相关的操作。常用的目录和文件函数有: * ChDir:改变当前目录 * ChDrive...
- `DATEDIFF()` 计算两个日期之间的差值(天数)。 - `CONVERT()` 转换日期格式。 2. **Oracle:** - `SYSDATE` 获取当前日期和时间。 - `ADD_MONTHS()` 添加指定的月数。 - `NUMTODSINTERVAL()` 和 `TO_...
7. DateDiff函数:返回两个日期之间的时间间隔数。其语法为DateDiff(interval, date1, date2, [firstdayofweek], [firstweekofyear])。 8. DatePart函数:返回日期中的指定部分,如年、月或日。其语法为DatePart...
16. DateDiff函数:计算两个日期之间的时间间隔。 17. DatePart函数:返回日期/时间中的特定部分,如年、月、日或时间。 18. DateSerial函数:返回指定年、月、日的日期值。 19. DateValue函数:将表达式转换为日期...
43. TIMESTAMP():随着一个参数,这个函数返回的日期或日期时间表达式;两个参数,参数的总和 44. TIMESTAMPADD():添加时间间隔为 datetime 表达式 45. TIMESTAMPDIFF():减去的时间间隔从 datetime 表达式 46. TO_...
这里我们使用"秒"("s")作为日期间隔单位,`DateDiff`函数会返回两个日期之间相差的总秒数。如果需要精确到天、时、分、秒,我们可以分别对这个秒数进行转换: ```vba Dim days As Long Dim hours As Integer Dim ...
MSSQL常用函数的知识点涵盖了多个方面的数据库操作,包括字符处理、日期时间计算、数据类型转换等。以下是从给定文件内容中提炼出的详细知识点: 字符处理函数: 1. ASCII():返回字符表达式最左边的字符的ASCII...
7. DateDiff 函数:计算两个日期之间的差值,返回天数、小时数、分钟等,如DateDiff("d", #3/14/2023#, #3/15/2023#)返回1。 8. DatePart 函数:从日期中提取特定部分,如DatePart("yyyy", #3/15/2023#)返回2023。 ...
DateDiff 函数用于返回两个指定日期之间的日期和时间边界数。语法如下: DATEDIFF(interval, date1, date2) 其中,interval 是要计算的时间间隔,date1 和 date2 是要比较的两个日期。 示例: SELECT DATEDIFF...
- DATEDIFF函数:计算两个日期之间的差异,如`DATEDIFF(DAY, '2022-12-30', '2023-01-01')`。 - DATEADD函数:在日期时间上增加指定的时间间隔,如`DATEADD(DAY, 1, '2022-12-31')`。 5. CONVERT函数:这个函数...
在进行数据分析或者处理与时间相关的业务逻辑时,经常会遇到需要计算两个日期之间的差异的问题,尤其是月份数和年数的差异。这样的需求在人力资源管理、财务分析等领域非常常见。比如,计算第一个员工和最后一个员工...
3. **DATEDIFF()**:计算两个日期之间的差值,返回的是整数,表示两个日期之间相隔的指定时间单位的数量。例如,计算两个日期之间的天数差: ```sql SELECT DATEDIFF(day, '2022-01-01', '2022-01-31'); ``` 4. ...