×

sql函数大全及举例

sql函数大全及举例(SQL 有哪些函数SQL中有哪些函数)

admin admin 发表于2023-11-18 16:18:41 浏览53 评论0

抢沙发发表评论

本文目录

SQL 有哪些函数SQL中有哪些函数

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下:

  1. AVG  返回指定组中的平均值,空值被忽略。

  2. 例:select  prd_no,avg(qty) from sales group by prd_no

  3. 2. COUNT  返回指定组中项目的数量。

  4. 例:select  count(prd_no) from sales 

  5. 3. MAX  返回指定数据的最大值。

  6. 例:select  prd_no,max(qty) from sales group by prd_no 

  7. 4. MIN  返回指定数据的最小值。

  8. 例:select  prd_no,min(qty) from sales group by prd_no

  9. 5. SUM  返回指定数据的和,只能用于数字列,空值被忽略。

  10. 例:select  prd_no,sum(qty) from sales group by prd_no

  11. 6. COUNT_BIG  返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

  12. 例:select  count_big(prd_no) from sales

  13. 7. GROUPING  产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.

  14. 例:select  prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

  15. 8. BINARY_CHECKSUM  返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。

  16. 例:select  prd_no,binary_checksum(qty) from sales group by prd_no

  17. 9. CHECKSUM_AGG  返回指定数据的校验值,空值被忽略。

  18. 例:select  prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

  19. 10. CHECKSUM  返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。

  20. 11. STDEV  返回给定表达式中所有值的统计标准偏差。

  21. 例:select  stdev(prd_no) from sales

  22. 12. STDEVP  返回给定表达式中的所有值的填充统计标准偏差。

  23. 例:select  stdevp(prd_no) from sales

  24. 13. VAR  返回给定表达式中所有值的统计方差。

  25. 例:select  var(prd_no) from sales

  26. 14. VARP  返回给定表达式中所有值的填充的统计方差。

  27. 例:select  varp(prd_no) from sales

sql聚合函数有哪些

聚集函数和大多数其它关系数据库产品一样,PostgreSQL支持聚集函数。一个聚集函数从多个输入行中计算出一个结果。比如,我们有在一个行集合上计算count(数目),sum(总和),avg(均值),max(最大值),min(最小值)的函数。比如,我们可以用下面的语句找出所有低温中的最高温度:SELECTmax(temp_lo)FROMweather;max-----46(1row)如果我们想知道该读数发生在哪个城市,可能会用:SELECTcityFROMweatherWHEREtemp_lo=max(temp_lo);--错!不过这个方法不能运转,因为聚集函数max不能用于WHERE子句中。存在这个限制是因为WHERE子句决定哪些行可以进入聚集阶段;因此它必需在聚集函数之前计算。不过,我们可以用其它方法实现这个目的;这里我们使用子查询:SELECTcityFROMweatherWHEREtemp_lo=(SELECTmax(temp_lo)FROMweather);city---------------SanFrancisco(1row)这样做是可以的,因为子查询是一次独立的计算,它独立于外层查询计算自己的聚集。聚集同样也常用于GROUPBY子句。比如,我们可以获取每个城市低温的最高值:SELECTcity,max(temp_lo)FROMweatherGROUPBYcity;city|max---------------+-----Hayward|37SanFrancisco|46(2rows)这样每个城市一个输出。每个聚集结果都是在匹配该城市的行上面计算的。我们可以用HAVING过滤这些分组:SELECTcity,max(temp_lo)FROMweatherGROUPBYcityHAVINGmax(temp_lo)《40;city|max---------+-----Hayward|37(1row)这样就只给出那些temp_lo值曾经有低于40度的城市。最后,如果我们只关心那些名字以“S“开头的城市,我们可以用:SELECTcity,max(temp_lo)FROMweatherWHEREcityLIKE’S%’GROUPBYcityHAVINGmax(temp_lo)《40;语句中的LIKE执行模式匹配,在节9.7里有解释。理解聚集和SQL的WHERE和HAVING子句之间的关系非常重要。WHERE和HAVING的基本区别如下:WHERE在分组和聚集计算之前选取输入行(它控制哪些行进入聚集计算),而HAVING在分组和聚集之后选取输出行。因此,WHERE子句不能包含聚集函数;因为试图用聚集函数判断那些行将要输入给聚集运算是没有意义的。相反,HAVING子句总是包含聚集函数。当然,你可以写不使用聚集的HAVING子句,但这样做没什么好处,因为同样的条件可以更有效地用于WHERE阶段。在前面的例子里,我们可以在WHERE里应用城市名称限制,因为它不需要聚集。这样比在HAVING里增加限制更加高效,因为我们避免了为那些未通过WHERE检查的行进行分组和聚集计算。

SQL Server中的时间函数有那些,最好举例说明

比较常用的时间函数有DateAdd,DateDiff,DateName,DatePart,Day,Getdate,Month,Year,GetUTCDate这几个函数。以下依次说明,如需更详细说明请参考SQL帮助文档:1. DateAdd函数在向指定日期加上一段时间的基础上,返回新的 datetime 值。语法DATEADD ( datepart , number, date ) 示例此示例打印出 pubs 数据库中标题的时间结构的列表。此时间结构表示当前发布日期加上 21 天。SELECT DATEADD(day, 21, pubdate) AS timeframeFROM titles2.DateDiff函数返回跨两个指定日期的日期和时间边界数。语法DATEDIFF ( datepart , startdate , enddate ) 示例此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_daysFROM titles3.DateName函数返回代表指定日期的指定日期部分的字符串。语法DATENAME ( datepart , date )示例此示例从 GETDATE 返回的日期中提取月份名。SELECT DATENAME(month, getdate()) AS ’Month Name’4.DatePart函数返回代表指定日期的指定日期部分的整数。语法DATEPART ( datepart , date ) 示例此示例显示 GETDATE 及 DATEPART 的输出。SELECT DATEPART(month, GETDATE()) AS ’Month Number’5.Day函数返回代表指定日期的天的日期部分的整数。语法DAY ( date ) 示例此示例返回从日期 03/12/1998 后的天数。SELECT DAY(’03/12/1998’) AS ’Day Number’6.GetDate函数按 datetime 值的 Microsoft® SQL Server™ 标准内部格式返回当前系统日期和时间。语法GETDATE ( )示例下面的示例得出当前系统日期和时间:SELECT GETDATE()7.Month函数返回代表指定日期月份的整数。语法MONTH ( date )示例下面的示例从日期 03/12/1998 中返回月份数。SELECT “Month Number“ = MONTH(’03/12/1998’)8.Year函数返回表示指定日期中的年份的整数。语法YEAR ( date )示例下例从日期 03/12/1998 中返回年份数。SELECT “Year Number“ = YEAR(’03/12/1998’)9.GetUTCDate函数返回表示当前 UTC 时间(世界时间坐标或格林尼治标准时间)的 datetime 值。当前的 UTC 时间得自当前的本地时间和运行 SQL Server 的计算机操作系统中的时区设置。语法GETUTCDATE()示例下例从日期 03/12/1998 中返回年份数。SELECT GETUTCDATE()

T-SQL的基本语法

经典SQL语句大全下列语句部分是Mssql语句,不可以在access中使用。   SQL分类:  DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)   DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)   DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)  首先,简要介绍基础语句:  1、说明:创建数据库CREATE DATABASE database-name  2、说明:删除数据库drop database dbname  3、说明:备份sql server  --- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’  --- 开始 备份BACKUP DATABASE pubs TO testBack  4、说明:创建新表create table tabname(col1 type1 FROM table WHERE criteria语法:DELETE * FROM table WHERE criteria=’查询的字’说明:table参数用于指定从其中删除记录的表的名称。criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。UPDATE 有关UPDATE,急!!!!!!!!!!!在ORACLE数据库中表 A ( ID ,FIRSTNAME,LASTNAME ) 表 B( ID,LASTNAME)表 A 中原来ID,FIRSTNAME两个字段的数据是完整的表 B中原来ID,LASTNAME两个字段的数据是完整的现在要把表 B中的LASTNAME字段的相应的数据填入到A表中LASTNAME相应的位置。两个表中的ID字段是相互关联的。先谢谢了!!!!update a set a.lastname=(select b.lastname from b where a.id=b.id)  掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。   练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。  在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。  SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。 TOP

求SQL的全部函数!完整的加100分!

一.聚合函数AVG 返回组中值的平均值。空值将被忽略BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值。BINARY_CHECKSUM 可用于检测表中行的更改CHECKSUM 返回在表的行上或在表达式列表上计算的校验值。CHECKSUM 用于生成哈希索引CHECKSUM_AGG 返回组中值的校验值。空值将被忽略COUNT 返回组中项目的数量COUNT_BIG 返回组中项目的数量。COUNT_BIG 的使用与 COUNT 函数相似。它们之间的唯一差别是它们的返回值:COUNT_BIG 总是返回 bigint 数据类型值,而 COUNT 则总是返回 int 数据类型值GROUPING “是一个聚合函数,它产生一个附加的列,当用 CUBE 或 ROLLUP 运算符添加行时,附加的列输出值为1,当所添加的行不是由 CUBE 或 ROLLUP 产生时,附加列值为0。仅在与包含 CUBE 或 ROLLUP 运算符的 GROUP BY 子句相联系的选择列表中才允许分组“MAX 返回表达式的最大值MIN 返回表达式的最小值SUM 返回表达式中所有值的和,或只返回 DISTINCT 值。SUM 只能用于数字列。空值将被忽略STDEV 返回给定表达式中所有值的统计标准偏差STDEVP 返回给定表达式中所有值的填充统计标准偏差VAR 返回给定表达式中所有值的统计方差。VARP 返回给定表达式中所有值的填充的统计方差。二.数学函数ABS 返回给定数字表达式的绝对值ACOS 返回以弧度表示的角度值,该角度值的余弦为给定的 float 表达式;本函数亦称反余弦。ASIN 返回以弧度表示的角度值,该角度值的正弦为给定的 float 表达式;亦称反正弦ATAN 返回以弧度表示的角度值,该角度值的正切为给定的 float 表达式;亦称反正切ATN2 返回以弧度表示的角度值,该角度值的正切介于两个给定的 float 表达式之间;亦称反正切CEILING 返回大于或等于所给数字表达式的最小整数COS 一个数学函数,返回给定表达式中给定角度(以弧度为单位)的三角余弦值COT 一个数学函数,返回给定 float 表达式中指定角度(以弧度为单位)的三角余切值DEGREES 当给出以弧度为单位的角度时,返回相应的以度数为单位的角度EXP 返回所给的 float 表达式的指数值FLOOR 返回小于或等于所给数字表达式的最大整数LOG 返回给定 float 表达式的自然对数LOG10 返回给定 float 表达式的以 10 为底的对数PI 返回 PI 的常量值POWER 返回给定表达式乘指定次方的值RADIANS 对于在数字表达式中输入的度数值返回弧度值RAND 返回 0 到1 之间的随机float 值ROUND 返回数字表达式并四舍五入为指定的长度或精度SIGN 返回给定表达式的正 (+1)、零 (0) 或负 (-1) 号SIN 以近似数字 (float) 表达式返回给定角度(以弧度为单位)的三角正弦值SQUARE 返回给定表达式的平方SQRT 返回给定表达式的平方根TAN 返回输入表达式的正切值三.日期函数DATEADD 在向指定日期加上一段时间的基础上,返回新的 datetime 值。DATEDIFF 返回跨两个指定日期的日期和时间边界数DATENAME 返回代表指定日期的指定日期部分的字符串DATEPART 返回代表指定日期的指定日期部分的整数DAY 返回代表指定日期的天的日期部分的整数GETDATE 按 datetime 值的 Microsoft�0�3 SQL Server�6�4 标准内部格式返回当前系统日期和时间GETUTCDATE 返回表示当前 UTC 时间(世界时间坐标或格林尼治标准时间)的 datetime 值MONTH 返回代表指定日期月份的整数YEAR 返回表示指定日期中的年份的整数四.系统函数APP_NAME 返回当前会话的应用程序名称(如果应用程序进行了设置)。CASE 表达式 计算条件列表并返回多个可能结果表达式之一(详见PPT资料)CAST 和 CONVERT 将某种数据类型的表达式显式转换为另一种数据类型(详见PPT资料)COALESCE 返回其参数中第一个非空表达式COLLATIONPROPERTY 返回给定排序规则的属性CURRENT_TIMESTAMP 返回当前的日期和时间。等价于 GETDATE()CURRENT_USER 返回当前的用户。价于 USER_NAME()

SQL有哪些函数

1.绝对值 SQL:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取整(截取) S:select cast(-1.002 as int) value O:select trunc(-1.002) value from dual 5.四舍五入 S:select round(1.23456,4) value 1.23460 O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂 S:select Exp(1) value 2.7182818284590451 O:select Exp(1) value from dual 2.71828182 7.取e为底的对数 S:select log(2.7182818284590451) value 1 O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数 S:select log10(10) value 1 O:select log(10,10) value from dual; 1 9.取平方 S:select SQUARE(4) value 16 O:select power(4,2) value from dual 16 10.取平方根 S:select SQRT(4) value 2 O:select SQRT(4) value from dual 2 11.求任意数为底的幂 S:select power(3,4) value 81 O:select power(3,4) value from dual 81 12.取随机数 S:select rand() value O:select sys.dbms_random.value(0,1) value from dual; 13.取符号 S:select sign(-8) value -1 O:select sign(-8) value from dual -1 ----------数学函数 14.圆周率 S:SELECT PI() value 3.1415926535897931 O:不知道 15.sin,cos,tan 参数都以弧度为单位 例如:select sin(PI()/2) value 得到1(SQLServer) 16.Asin,Acos,Atan,Atan2 返回弧度 17.弧度角度互换(SQLServer,Oracle不知道) DEGREES:弧度-〉角度 RADIANS:角度-〉弧度 ---------数值间比较 18. 求集合最大值 S:select max(value) value from (select 1 value union select -2 value union select 4 value union select 3 value)a O:select greatest(1,-2,4,3) value from dual 19. 求集合最小值 S:select min(value) value from (select 1 value union select -2 value union select 4 value union select 3 value)a O:select least(1,-2,4,3) value from dual 20.如何处理null值(F2中的null以10代替) S:select F1,IsNull(F2,10) value from Tbl O:select F1,nvl(F2,10) value from Tbl --------数值间比较 21.求字符序号 S:select ascii(’a’) value O:select ascii(’a’) value from dual 22.从序号求字符 S:select char(97) value O:select chr(97) value from dual 23.连接 S:select ’11’+’22’+’33’ value O:select CONCAT(’11’,’22’)||33 value from dual 23.子串位置 --返回3 S:select CHARINDEX(’s’,’sdsq’,2) value O:select INSTR(’sdsq’,’s’,2) value from dual 23.模糊子串的位置 --返回2,参数去掉中间%则返回7 S:select patindex(’%d%q%’,’sdsfasdqe’) value O:oracle没发现,但是instr可以通过第四霾问 刂瞥鱿执问?BR》 select INSTR(’sdsfasdqe’,’sd’,1,2) value from dual 返回6 24.求子串 S:select substring(’abcd’,2,2) value O:select substr(’abcd’,2,2) value from dual 25.子串代替 返回aijklmnef S:SELECT STUFF(’abcdef’, 2, 3, ’ijklmn’) value O:SELECT Replace(’abcdef’, ’bcd’, ’ijklmn’) value from dual 26.子串全部替换 S:没发现 O:select Translate(’fasdbfasegas’,’fa’,’我’ ) value from dual 27.长度 S:len,datalength O:length 28.大小写转换 lower,upper 29.单词首字母大写 S:没发现 O:select INITCAP(’abcd dsaf df’) value from dual 30.左补空格(LPAD的第一个参数为空格则同space函数) S:select space(10)+’abcd’ value O:select LPAD(’abcd’,14) value from dual 31.右补空格(RPAD的第一个参数为空格则同space函数) S:select ’abcd’+space(10) value O:select RPAD(’abcd’,14) value from dual 32.删除空格 S:ltrim,rtrim O:ltrim,rtrim,trim 33. 重复字符串 S:select REPLICATE(’abcd’,2) value O:没发现 34.发音相似性比较(这两个单词返回值一样,发音相同) S:SELECT SOUNDEX (’Smith’), SOUNDEX (’Smythe’) O:SELECT SOUNDEX (’Smith’), SOUNDEX (’Smythe’) from dual SQLServer中用SELECT DIFFERENCE(’Smithers’, ’Smythers’) 比较soundex的差 返回0-4,4为同音,1最高 --------------日期函数 35.系统时间 S:select getdate() value O:select sysdate value from dual 36.前后几日 直接与整数相加减 37.求日期 S:select convert(char(10),getdate(),20) value O:select trunc(sysdate) value from dual select to_char(sysdate,’yyyy-mm-dd’) value from dual 38.求时间 S:select convert(char(8),getdate(),108) value O:select to_char(sysdate,’hh24:mm:ss’) value from dual 39.取日期时间的其他部分 S:DATEPART 和 DATENAME 函数 (第一个参数决定) O:to_char函数 第二个参数决定 参数---------------------------------下表需要补充 year yy, yyyy quarter qq, q (季度) month mm, m (m O无效) dayofyear dy, y (O表星期) day dd, d (d O无效) week wk, ww (wk O无效) weekday dw (O不清楚) Hour hh,hh12,hh24 (hh12,hh24 S无效) minute mi, n (n O无效) second ss, s (s O无效) millisecond ms (O无效) ---------------------------------------------- 40.当月最后一天 S:不知道 O:select LAST_DAY(sysdate) value from dual 41.本星期的某一天(比如星期日) S:不知道 O:SELECT Next_day(sysdate,7) vaule FROM DUAL; 42.字符串转时间 S:可以直接转或者select cast(’2004-09-08’as datetime) value O:SELECT To_date(’2004-01-05 22:09:38’,’yyyy-mm-dd hh24-mi-ss’) vaule FROM DUAL; 43.求两日期某一部分的差(比如秒) S:select datediff(ss,getdate(),getdate()+12.3) value O:直接用两个日期相减(比如d1-d2=12.3) SELECT (d1-d2)*24*60*60 vaule FROM DUAL; 44.根据差值求新的日期(比如分钟) S:select dateadd(mi,8,getdate()) value O:SELECT sysdate+8/60/24 vaule FROM DUAL; 45.求不同时区时间 S:不知道 O:SELECT New_time(sysdate,’ydt’,’gmt’ ) vaule FROM DUAL; -----时区参数,北京在东8区应该是Ydt------- AST ADT 大西洋标准时间 BST BDT 白令海标准时间 CST CDT 中部标准时间 EST EDT 东部标准时间 GMT 格林尼治标准时间 HST HDT 阿拉斯加—夏威夷标准时间 MST MDT 山区标准时间 NST 纽芬兰标准时间 PST PDT 太平洋标准时间 YST YDT YUKON标准时间 Oracle支持的字符函数和它们的Microsoft SQL Server等价函数: 函数 Oracle Microsoft SQL Server 把字符转换为ASCII ASCII ASCII 字串连接 CONCAT (expression + expression) 把ASCII转换为字符 CHR CHAR 返回字符串中的开始字符(左起) INSTR CHARINDEX 把字符转换为小写 LOWER LOWER 把字符转换为大写 UPPER UPPER 填充字符串的左边 LPAD N/A 清除开始的空白 LTRIM LTRIM 清除尾部的空白 RTRIM RTRIM 字符串中的起始模式(pattern) INSTR PATINDEX 多次重复字符串 RPAD REPLICATE 字符串的语音表示 SOUNDEX SOUNDEX 重复空格的字串 RPAD SPACE 从数字数据转换为字符数据 TO_CHAR STR 子串 SUBSTR SUBSTRING 替换字符 REPLACE STUFF 将字串中的每个词首字母大写 INITCAP N/A 翻译字符串 TRANSLATE N/A 字符串长度 LENGTH DATELENGTH or LEN 列表中最大的字符串 GREATEST N/A 列表中最小的字符串 LEAST N/A 如果为NULL则转换字串 NVL ISNULL 日期函数 函数 Oracle Microsoft SQL Server 日期相加 (date column +/- value) or ADD_MONTHS DATEADD 两个日期的差 (date column +/- value) or MONTHS_BETWEEN DATEDIFF 当前日期和时间 SYSDATE GETDATE() 一个月的最后一天 LAST_DAY N/A 时区转换 NEW_TIME N/A 日期后的第一个周日 NEXT_DAY N/A 代表日期的字符串 TO_CHAR DATENAME 代表日期的整数 TO_NUMBER (TO_CHAR)) DATEPART 日期舍入 ROUND CONVERT 日期截断 TRUNC CONVERT 字符串转换为日期 TO_DATE CONVERT 如果为NULL则转换日期 NVL ISNULL 转换函数 函数 Oracle Microsoft SQL Server 数字转换为字符 TO_CHAR CONVERT 字符转换为数字 TO_NUMBER CONVERT 日期转换为字符 TO_CHAR CONVERT 字符转换为日期 TO_DATE CONVERT 16进制转换为2进制 HEX_TO_RAW CONVERT 2进制转换为16进制 RAW_TO_HEX CONVERT 其它行级别的函数 函数 Oracle Microsoft SQL Server 返回第一个非空表达式 DECODE COALESCE 当前序列值 CURRVAL N/A 下一个序列值 NEXTVAL N/A 如果exp1 = exp2, 返回null DECODE NULLIF 用户登录账号ID数字 UID SUSER_ID 用户登录名 USER SUSER_NAME 用户数据库ID数字 UID USER_ID 用户数据库名 USER USER_NAME 当前用户 CURRENT_USER CURRENT_USER 用户环境(audit trail) USERENV N/A 在CONNECT BY子句中的级别 LEVEL N/A 合计函数 函数 Oracle Microsoft SQL Server Average AVG AVG Count COUNT COUNT Maximum MAX MAX Minimum MIN MIN Standard deviation STDDEV STDEV or STDEVP Summation SUM SUM Variance VARIANCE VAR or VARP Oracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域: EXTRACT(YEAR FROM 日期)