Sybase IQ常用函数大全–时间和日期函数(3)
查询索引:
- HOUR 函数:返回 0 到 23 之间的一个数字,该数字对应于指定日期/时间的小时部分。
- HOURS 函数:返回自任意开始日期和时间以来的小时数、两个指定时间之间的完整小时数,或者将指定的 integer-expression 数量的小时添加到某个时间中。
- MINUTE 函数:返回 0 到 59 之间的一个数字,该数字对应于指定日期/时间值的分钟部分。
- MINUTES 函数:返回自任意日期和时间以来的分钟数、两个指定时间之间的完整分钟数,或者将指定的 integer-expression 数量的分钟添加到某个时间中。
- MONTH 函数:返回 1 到 12 之间的一个数字,该数字对应于给定日期的月份。
- MONTHNAME 函数:返回指定日期表达式中的月份名称。
- MONTHS 函数:返回自任意开始日期/时间以来的月数、两个指定日期/时间之间的月数,或者将指定的 integer-expression 数量的月添加到日期/时间中。
- QUARTER 函数:返回一个表示所提供日期表达式中年的季度的数字。
- SECOND 函数:返回 0 到 59 之间的一个数字,该数字对应于给定日期/时间值的秒部分。这个与hour函数格式一致,没有详解。
- SECONDS 函数:返回自任意开始日期和时间以来的秒数、两个时间之间的秒数,或者向某时间添加整数数量的秒。这个与hours函数格式一致,没有详解。
- WEEKS 函数:返回自任意开始日期/时间以来的周数、两个指定日期/时间之间的周数,或者将指定的 integer-expression 数量的周添加到某日期/时间中。
- YEAR 函数:返回与给定日期/时间的年份相对应的 4 位数数字。与上面时分秒的函数类似,不多介绍,无详解。
- YEARS 函数:返回与给定日期/时间的年份相对应的 4 位数数字、两个指定日期/时间之间的年数,或向某日期/时间添加指定的 integer-expression 数量的年。与上面时分秒的函数类似,不多介绍,无详解。
- YMD 函数:返回对应于给定年、月、日的日期值。
1. HOUR 函数
返回 0 到 23 之间的一个数字,该数字对应于指定日期/时间的小时部分。
语法:
HOUR ( <datetime-expression> )
解析:
参数 | 说明 |
---|---|
datetime-expression | 日期/时间。 |
示例:
-- 以下语句返回值 21:
SELECT HOUR( '1998-07-09 21:12:13' ) FROM iq_dummy
2. HOURS 函数
返回自任意开始日期和时间以来的小时数、两个指定时间之间的完整小时数,或者将指定的 integer-expression 数量的小时添加到某个时间中。
语法:
- 类似days函数,一个是与日期相关,一个是与小时相关。
-- 语法一:
HOURS ( <datetime-expression> )
-- 语法二:
HOURS ( <datetime-expression>, <datetime-expression> )
-- 语法三:
HOURS ( <datetime-expression>, <integer-expression> )
解析:
参数 | 说明 |
---|---|
datetime-expression | 日期和时间。 |
integer-expression | 要添加到 中的小时数。如果 是负数,则从日期/时间中减去相应的小时数。如果提供整数表达式,则必须将 显式转换为 datetime 数据类型。 |
- 第二个语法返回从第一个日期/时间到第二个日期/时间之间的完整小时数。数值可能为负。
示例:
-- 以下语句返回值 17518758:
SELECT HOURS( '1998-07-13 06:07:12' ) FROM iq_dummy
-- 以下语句返回值 4,表示两个时间之间的差值:
SELECT HOURS( '1999-07-13 06:07:12', '1999-07-13 10:07:12' ) FROM iq_dummy
-- 以下语句返回日期时间值 1999-05-13 02:05:07.000:
SELECT HOURS( CAST( '1999-05-12 21:05:07' AS DATETIME ), 5 ) FROM iq_dummy
3. MINUTE 函数
返回 0 到 59 之间的一个数字,该数字对应于指定日期/时间值的分钟部分。
语法:
MINUTE ( <datetime-expression> )
解析:
参数 | 说明 |
---|---|
datetime-expression | 日期/时间值。 |
示例:
-- 以下语句返回值 22:
SELECT MINUTE( '1998-07-13 12:22:34' ) FROM iq_dummy
4. MINUTES 函数
返回自任意日期和时间以来的分钟数、两个指定时间之间的完整分钟数,或者将指定的 integer-expression 数量的分钟添加到某个时间中。
语法:
- 类似days函数、hours函数,一个是与日期相关,一个是与分钟相关。
-- 语法一:
MINUTES ( <datetime-expression> )
-- 语法二:
MINUTES ( <datetime-expression>, <datetime-expression> )
-- 语法三:
MINUTES ( <datetime-expression>, <integer-expression> )
解析:
参数 | 说明 |
---|---|
datetime-expression | 日期和时间。 |
integer-expression | 要添加到< datetime-expression. >中的分钟数。如果 是负数,则从日期/时间值中减去相应的分钟数。如果提供整数表达式,则必须将 显式转换为 datetime 数据类型 |
- 第二个语法返回从第一个日期/时间到第二个日期/时间之间的完整小时数。数值可能为负。
示例:
-- 返回值 1051125487:
SELECT MINUTES( '1998-07-13 06:07:12' ) FROM iq_dummy
-- 返回值 240,表示两个时间之间的差值:
SELECT MINUTES( '1999-07-13 06:07:12',
'1999-07-13 10:07:12' ) FROM iq_dummy
-- 返回 datetime 值 1999-05-12 21:10:07.000:
SELECT MINUTES( CAST( '1999-05-12 21:05:07' AS DATETIME ), 5) FROM iq_dummy
5. MONTH 函数
返回 1 到 12 之间的一个数字,该数字对应于给定日期的月份。
语法:
MONTH ( <date-expression> )
解析:
参数 | 说明 |
---|---|
date-expression | 日期/时间值。 |
示例:
-- 以下语句返回值 7:
SELECT MONTH( '1998-07-13' ) FROM iq_dummy
6. MONTHNAME 函数
返回指定日期表达式中的月份名称。
语法:
MONTHNAME ( <date-expression> )
解析:
参数 | 说明 |
---|---|
date-expression | 日期/时间值。 |
示例:
-- 当 DATE_ORDER 选项设置为缺省值 <ymd> 时,以下语句将返回值 September。
SELECT MONTHNAME( '1998-09-05' ) FROM iq_dummy
7. MONTHS 函数
返回自任意开始日期/时间以来的月数、两个指定日期/时间之间的月数,或者将指定的 integer-expression 数量的月添加到日期/时间中。
语法:
- 类似days函数、hours函数、minutes函数,一个是与日期相关,一个是与月份相关。
-- 语法一:
MONTHS ( <datetime-expression> )
-- 语法二:
MONTHS ( <datetime-expression>, <datetime-expression> )
-- 语法三:
MONTHS ( <datetime-expression>, <integer-expression> )
解析:
参数 | 说明 |
---|---|
datetime-expression | 日期和时间。 |
integer-expression | 要添加到 中的月数。如果 是负数,则从日期/时间中减去相应的月数。如果提供整数表达式,则必须将 显式转换为 datetime 数据类型。 |
-
第二个语法返回从第一个日期/时间到第二个日期/时间之间的完整小时数。数值可能为负。
-
第一种语法返回自任意开始日期以来的月数。此数字通常用于确定两个日期/时间表达式是否在同一年的同一月中。
-
第二种语法返回从第一个日期到第二个日期之间的月数。数值可能为负。该值是根据两个日期之间的月份的第一天的数目计算出的。会忽略小时、分钟和秒钟。
-
第三种语法将 个月添加到给定日期中。如果新日期超出月末(如 MONTHS (‘1992-01-31’, 1)),则结果设置为该月的最后一天。如果 是负数,则从日期中减去相应的月数。会忽略小时、分钟和秒钟。
示例:
-- 以下语句返回值 23982:
SELECT MONTHS( '1998-07-13 06:07:12' ) FROM iq_dummy
-- 以下语句返回值 2,表示两个日期之间的差值:
SELECT MONTHS( '1999-07-13 06:07:12', '1999-09-13 10:07:12' ) FROM iq_dummy
-- 以下语句返回日期时间值 1999/10/12 21:05:07.000:
SELECT MONTHS( CAST( '1999-05-12 21:05:07' AS DATETIME ), 5) FROM iq_dummy
8. QUARTER 函数
返回一个表示所提供日期表达式中年的季度的数字。
语法:
QUARTER( <date-expression> )
解析:
参数 | 说明 |
---|---|
date-expression | 日期 |
季度 | 期限(含起止日期) |
---|---|
1 | 1 月 1 日到 3 月 31 日 |
2 | 4 月 1 日到 6 月 30 日 |
3 | 7 月 1 日到 9 月 30 日 |
4 | 10 月 1 日到 12 月 31 日 |
示例:
-- 如果将 DATE_ORDER 选项设置为 <ymd> 的缺省值,则下列语句返回值 2:
SELECT QUARTER ( '1987/05/02' ) FROM iq_dummy
9、10 略
11. WEEKS 函数
返回自任意开始日期/时间以来的周数、两个指定日期/时间之间的周数,或者将指定的 integer-expression 数量的周添加到某日期/时间中。
语法:
-- 语法一:
WEEKS ( <datetime-expression> )
-- 语法二:
WEEKS ( <datetime-expression>, <datetime-expression> )
-- 语法三:
WEEKS ( <datetime-expression>, <integer-expression> )
解析:
参数 | 说明 |
---|---|
datetime-expression | 日期和时间。 |
integer-expression | 要添加到 的周数。如果 是负数,则从日期/时间值中减去相应的周数。忽略小时、分钟和秒。如果提供整数表达式,则必须将 显式转换为 DATETIME 数据类型。 |
- 周是指从星期日到星期六,这与北美日历中一样。第一种语法返回的数字通常用于确定两个日期是否在同一周中。
- 在第二个语法中,系统将根据两个日期之间的星期日的数量计算 WEEKS 的值。忽略小时、分钟和秒。此函数不受 DATE_FIRST_DAY_OF_WEEK 选项的影响。
示例:
-- 以下语句返回值 104278:
SELECT WEEKS( '1998-07-13 06:07:12' ) FROM iq_dummy
-- 以下语句返回值 9,表示两个日期之间的差值:
SELECT WEEKS( '1999-07-13 06:07:12', '1999-09-13 10:07:12' ) FROM iq_dummy
-- 以下语句返回时间戳值 1999-06-16 21:05:07.000:
SELECT WEEKS( CAST( '1999-05-12 21:05:07' AS TIMESTAMP ), 5) FROM iq_dummy
14. YMD 函数:
返回对应于给定年、月、日的日期值。
语法:
YMD ( <integer-expression1>, <integer-expression2>, <integer-expression3> )
解析:
参数 | 说明 |
---|---|
integer-expression1 | 年。 |
integer-expression2 | 表示月份的数字。如果月份超出 1-12 这一范围,则相应地调整年份。 |
integer-expression3 | 表示日的数字。日可以是任意整数,将相应地调整日期。 |
示例:
-- 以下语句返回值 1998/6/12:
SELECT YMD( 1998, 06, 12 ) FROM iq_dummy
-- 如果值超出其正常范围,则相应地调整日期。例如,以下语句返回值 1993-03-01:
SELECT YMD( 1992, 15, 1 ) FROM iq_dummy
-- 以下语句返回值 1993/2/28:
SELECT YMD ( 1992, 15, 1-1 ) FROM iq_dummy
-- 以下语句返回值 1992/2/29:
SELECT YMD ( 1992, 3, 1-1 ) FROM iq_dummy