![]() |
|
日历日期/时间函数日历日期/时间函数处理日期、时间和时间戳数据类型的数据。(时间戳数据类型是日期和时间的组合。) 所有日期函数均符合 ISO 8601 规定。这尤其影响 Week_Of_Year 和 Week_Of_Quarter 函数,其中年度初始周为包括星期四的完整的第一周。有关如何计算日期函数的详细信息,请查阅 ISO 8601 标准。 Current_Date返回当前日期。日期由运行 Oracle CRM On Demand Answers 的系统确定。该值不包含时间部分。 语法: CURRENT_DATE Current_Time返回当前时间。此时间由运行 Oracle CRM On Demand Answers 的系统确定。该值不包含日期部分。 注意:此函数获取运行报表时的当前时间。将此函数与分析 主题区域结合使用,可以防止缓存报表,但这也降低了性能。 语法: CURRENT_TIME (n) 其中:
Current_TimeStamp返回当前日期/时间戳。时间戳由运行 Oracle CRM On Demand Answers 的系统确定。 注意:此函数获取运行报表时的当前时间。将此函数与分析 主题区域结合使用,可以防止缓存报表,但这也降低了性能。 语法: CURRENT_TIMESTAMP (n) 其中:
Day_Of_Quarter返回一个数字(在 1 到 92 之间),该数字对应于指定日期是季度中的第几天。 语法: DAY_OF_QUARTER (date_expression) 其中:
DayName返回指定日期的星期日期名称(以英文表示)。 语法: DAYNAME (date_expression) 其中:
DayOfMonth返回一个数字,该数字对应于指定日期是月份中的第几天。 语法: DAYOFMONTH (date_expression) 其中:
DayOfWeek返回一个数字(在 1 到 7 之间),该数字对应于指定日期是星期中的第几天。数字 1 对应于星期天,数字 7 对应于星期六。 语法: DAYOFWEEK (date_expression) 其中:
DayOfYear返回一个数字(在 1 到 366 之间),该数字对应于指定日期是一年中的第几天。 语法: DAYOFYEAR (date_expression) 其中:
Hour返回一个数字(在 0 到 23 之间),该数字对应于指定时间是一天中的第几个小时。例如,0 对应于凌晨 12 点,23 对应于晚上 11 点。 语法: HOUR (time_expression) 其中:
Minute返回一个数字(在 0 到 59 之间),该数字对应于指定时间是一小时中的第几分钟。 语法: MINUTE (time_expression) 其中:
Month返回一个数字(在 1 到 12 之间),该数字对应于指定日期的月份。 语法: MONTH (date_expression) 其中:
Month_Of_Quarter返回一个数字(在 1 到 3 之间),该数字对应于指定日期是季度中的第几个月。 语法: MONTH_OF_QUARTER (date_expression) 其中:
MonthName返回指定日期的月份名称(以英文表示)。 语法: MONTHNAME (date_expression) 其中:
Now返回当前时间戳。NOW 函数等效于 CURRENT_TIMESTAMP 函数。 注意:此函数获取运行报表时的当前时间。将此函数与分析 主题区域结合使用,可以防止缓存报表,但这也降低了性能。 语法: NOW () Quarter_Of_Year返回一个数字(在 1 到 4 之间),该数字对应于指定日期是一年中的第几个季度。 语法: QUARTER_OF_YEAR (date_expression) 其中:
Second返回一个数字(在 0 到 59 之间),该数字对应于指定时间是一分钟中的第几秒。 语法: SECOND (time_expression) 其中:
TimestampAddTimestampAdd 函数向指定时间戳添加指定数目的间隔。返回单个时间戳。 语法: TimestampAdd (interval, integer_expression, timestamp_expression) 其中:
向此函数传递空整数表达式或空时间戳表达式将产生空返回值。 在最简单的情形中,此函数只是根据间隔向时间戳的适当部分添加指定的整数值 (integer_expression)。添加一星期将转换为添加 7 天,添加一季度将转换为添加 3 个月。负整数值将执行减法操作(时间上回溯)。 指定的部分溢出(例如超过 60 秒、24 小时、12 个月等)将需要向下一部分添加适当的数量。例如,当向时间戳的天部分执行添加时,此函数将考虑溢出和特定月份的天数(包括闰年的二月有 29 天)。 当向时间戳的月部分执行添加时,此函数将验证结果时间戳的天部分是否有足够的天数。例如,向 2000-05-31 添加 1 个月的结果不是 2000-06-31,这是因为六月没有 31 天。此函数会将天部分减少至该月的最后一天,在本例中为 2000-06-30。 对于月部分涉及二月并且天部分为 29(即闰年中二月的最后一天)的时间戳,添加年部分时也会产生类似的问题。如果结果时间戳不在闰年中,则函数会将天部分减少到 28。 以下是 TimestampAdd 函数的示例: 以下代码示例计算向 2000-02-27 14:30:00 添加 3 天后的结果时间戳。由于是 2000 年是闰年,因此该示例返回一个时间戳 2000-03-01 14:30:00。 TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’) 以下代码示例计算向 1999-07-31 0:0:0 添加 7 个月的结果时间戳。此示例返回单个时间戳 2000-02-29 00:00:00。请注意因为二月天数较少,所以将天部分减少到 29。 TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’) 以下代码示例计算向 2000-07-31 23:35:00 添加 25 分钟的结果时间戳。此示例返回单个时间戳 2000-08-01 00:00:00。请注意溢出向月部分的传播。 TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’) TimeStampDiffTimestampDiff 函数返回两个时间戳之间指定间隔的总数。 语法: TimestampDiff (interval, timestamp_expression1, timestamp_expression2) 其中:
向此函数传递空时间戳表达式参数将产生空返回值。 此函数先确定对应于指定间隔参数的时间戳部分。例如,SQL_TSI_DAY 对应于天部分,SQL_TSI_MONTH 对应于月部分。 随后函数考虑两个时间戳中顺序较高的部分以计算每个时间戳的间隔总数。例如,如果指定的间隔对应于月部分,则函数通过将年部分乘以 12 并和月部分相加计算每个时间戳月份的总数。 最后,函数从第二个时间戳的间隔总数减去第一个时间戳的间隔总数。 当计算日期上的差值时,函数截断两个时间戳表达式中的时间值,然后减去日期值。 当计算星期上的差值时,函数计算天的差值并在取整前除以 7。 当计算季度上的差值时,函数计算月的差值并在取整前除以 3。 当计算年度上的差值时,函数计算月的差值并在取整前除以 12。 TimestampDiff 函数和结果示例以下代码示例计算时间戳 1998-07-31 23:35:00 和 2000-04-01 14:24:00 之间的天差值。它返回值 610。请注意,2000 年是闰年,所以结果中多一天。 TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’) Week_Of_Quarter返回一个数字(在 1 到 13 之间),该数字对应于指定日期是季度中的第几个星期。 语法: WEEK_OF_QUARTER (date_expression) 其中:
Week_Of_Year返回一个数字(在 1 到 53 之间),该数字对应于指定日期是一年中的第几个星期。 语法: WEEK_OF_YEAR (date_expression) 其中:
年份返回指定日期的年。 语法: YEAR (date_expression) 其中:
例如: YEAR (CURRENT_DATE) |
已发布 10月 2016 | Copyright © 2005, 2016, Oracle. 保留所有权利。Legal Notices. |