db2_sql_函数_总结

来源:互联网 发布:tw域名注册 编辑:程序博客网 时间:2024/06/05 17:38
--------------------------------------数字操作---------------------------------------------------------------------select avg(amount) from t_aa_view_income_data--返回一组数值的平均值select count(*) from t_aa_view_income_data--返回一组行或值的个数select max(amount) from t_aa_view_income_data--返回一组数值中的最大值select min(amount) from t_aa_view_income_data--返回一组数值中的最小值select sum(amount) from t_aa_view_income_data--返回一组数据的和select abs(-3.4) from t_aa_view_income_data--返回参数的绝对值(结果=3.4)select absval(-3.4) from t_aa_view_income_data--返回参数的绝对值(结果=3.4)select ceil(2.8) from t_aa_view_income_data--返回比参数大或等于参数的最小的整数值(结果=3)select ceiling(2.8) from t_aa_view_income_data--返回比参数大或等于参数的最小的整数值(结果=3)select floor(2.8) from t_aa_view_income_data--返回小于或等于参数的最大整数(结果=2)select trunc(345.6789,3) from t_aa_view_income_data--从表达式小数点右边的位置开始截断并返回该数值(结果=345.6780),后面的参数指从小数点右边第几个数后截断select trunc('55555.55',3) from t_aa_view_income_data--(第1个参数可以是字符,但必须是数值,结果=55555.550)select trunc('55555',3) from t_aa_view_income_data--(结果=55555.000)select truncate(345.6789,3) from t_aa_view_income_data--从表达式小数点右边的位置开始截断并返回该数值(结果=345.6780),后面的参数指从小数点右边第几个数后截断select sqrt(36) from t_aa_view_income_data--返回该参数的平方根(结果=6.0)select round(2345.6789,2) from t_aa_view_income_data--返回EXP1小数点右边的第EXP2位置处开始的四舍五入值(结果=2345.6800)select real(10) from t_aa_view_income_data--返回一个数值的单精度浮点数表示(结果=10.0)select rand() from t_aa_view_income_data--返回0和1之间的随机浮点数(结果类似为:0.7932188058240427)select power(2,3) from t_aa_view_income_data--返回EXP1的EXP2次幂(结果=8)select mod(8,3) from t_aa_view_income_data--返回EXP1除以EXP2的余数(结果=2)select double(8) from t_aa_view_income_data--如果参数是一个数字表达式,返回与其相对应的浮点数(结果=8.0)select double('8') from t_aa_view_income_data--如果参数是字符串表达式,则返回该数的字符串表达式(结果=8.0)select float(8) from t_aa_view_income_data--返回一个数的浮点表示(结果=8.0)--select exp(4) from t_aa_view_income_data--返回参数的指数函数--select hex('we') from t_aa_view_income_data--返回一个表示为字符串的值的16进制表示--select  corr(amount,amount) from t_aa_view_income_data--返回一对数值的关系系数--select  correlation(amount,amount) from t_aa_view_income_data--返回一对数值的关系系数--select covar(3,2) from t_aa_view_income_data--返回一对数值的协方差--select covariance(3,2) from t_aa_view_income_data--返回一对数值的协方差--select stddev(amount) from t_aa_view_income_data--返回一组数值中的标准偏差--select var(amount) from t_aa_view_income_data--返回一组数值的方差--select variance(amount) from t_aa_view_income_data--返回一组数值的方差--select acos(0.9) from t_aa_view_income_data--返回参数的反余弦值--select asin(0.9) from t_aa_view_income_data--返回用弧度表示的角度的参数的反正弦函数--select atan(0.9) from t_aa_view_income_data--返回参数的反正切值,该参数用弧度表示的角度的参数--select atan2(0.5,0.9) from t_aa_view_income_data--返回用弧度表示的角度的X和Y坐标的反正切值--select bigint(2.8) from t_aa_view_income_data--返回整型常量中的数字或字符串的64位整数表示--select ascii('R') from t_aa_view_income_data--返回整数参数最左边的字符的ASCII码--select chr(82) from t_aa_view_income_data--返回具有由参数指定的ASCII码的字符,此句中,结果返回R--------------------------------------字符串操作---------------------------------------------------------------------select char(amount,',') from t_aa_view_income_data--返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示(如果amount=2.4,结果=2,4)select char('ssssss',2) from t_aa_view_income_data--(结果=ss),后面的参数指长度select varchar(area_id,1) from t_aa_view_income_data--返回字符串,日期型,图形串的可变长度的字符串表示(如果area_id=22,结果=2),后面的参数指长度select concat('w','e') from t_aa_view_income_data--返回两个字符串的连接(结果=we)select upper('we') from t_aa_view_income_data--返回字符串的大写(结果=WE)select ucase('we') from t_aa_view_income_data--返回字符串的大写(结果=WE)select substr('we believe',2) from t_aa_view_income_data--返回第1个参数自第2个参数(整数)处开始的子串(结果=e believe)select substr('we believe',2,3) from t_aa_view_income_data--返回第1个参数自第2个参数(整数)处开始的子串(结果=e b),最后一个参数指取几个select space(100) from t_aa_view_income_data--返回由参数指定的长度,包含空格在内的字符串(结果返回100个空格组成的字符串)select rtrim('we believe  ') from t_aa_view_income_data--删除字符串尾部的空格(结果=we believe)select ltrim('  we believe  ') from t_aa_view_income_data--删除字符串前面的空格(结果=we believe  )select replace('sssstnnd','tnnd','wmmb') from t_aa_view_income_data--用EXP3替代EXP1中所有的EXP2(结果=sssswmmb)select repeat('tnnd',2) from t_aa_view_income_data--返回EXP1重复EXP2次后的字符串(结果=tnndtnnd),最后一个参数指重复的次数select posstr('abcdefgh','d') from t_aa_view_income_data--返回EXP2在EXP1中的位置(结果=4)select nullif('we','we') from t_aa_view_income_data--如果EXP1=EXP2,则为NULL,否则为EXP1(结果=null)select nullif('we','w') from t_aa_view_income_data--如果EXP1=EXP2,则为NULL,否则为EXP1(结果=we)--------------------------------------其他-----------------------------------------------------------------------select nodenumber(id),nodenumber(area_id) from t_aa_view_income_data--返回行的分区号--------------------------------------日期操作---------------------------------------------------------------------select date(date_time) from t_aa_view_income_data--返回一个数值中的日期(如果date_time=2013-05-20 00:00:00,结果=2013-05-20)select year(date_time) from t_aa_view_income_data--返回数值的年部分(如果date_time=2013-05-20 00:00:00,结果=2013)select month(date_time) from t_aa_view_income_data--返回数值的月部分(如果date_time=2013-05-20 00:00:00,结果=5)select day(date_time) from t_aa_view_income_data--返回数值的天部分(如果date_time=2013-05-20 00:00:00,结果=20)select time(date_time) from t_aa_view_income_data--返回一个数值中的时间(如果date_time=2013-05-20 00:00:00,结果=00:00:00)select hour('18:34:32') from t_aa_view_income_data--返回一个数值的小时部分(结果=18)select minute('18:34:32') from t_aa_view_income_data--返回一个数值的分钟部分(结果=34)select second('18:34:32') from t_aa_view_income_data--返回一个数值的秒部分(结果=32)values microsecond(current timestamp) --返回一个数值的微秒部分(结果=636967)values dayname(current date)--返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(结果=Sunday)values monthname(current date)--对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January,结果=June)   values dayofweek(current date)--返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日(结果=1)values dayofweek_iso(current date)--返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一(结果=7)values week(current date)--返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始(结果=23)values week_iso(current date)--返回参数中一年的第几周,用范围在 1-53 的整数值表示(结果=22)values dayofyear(current date)--返回参数中一年中的第几天,用范围在 1-366 的整数值表示(结果=153)values days (current date)--返回日期的整数表示(结果=735021)values julian_day (current date)--返回从公元前 4712 年 1 月 1 日(儒略日历的开始日期)到参数中指定日期值之间的天数,用整数值表示.(结果=2456446)values midnight_seconds (current time)--返回午夜和参数中指定的时间值之间的秒数,用范围在 0 到 86400 之间的整数值表示(结果=45851)values current timestamp--获取当前日期和时间(结果=2013-06-02 12:18:23)values timestamp_iso(current timestamp)--根据日期、时间或时间戳记参数而返回一个时间戳记值(结果=2013-06-02 12:49:54)values current date--获取当前日期(结果=2013-06-02)values current time--获取当前时间(结果=12:12:02)values current timezone--当前时区寄存器values timestamp ('2002-10-20-12.00.00.000000') --将字符串转换成日期或时间值(结果=2002-10-20 12:00:00)values timestamp ('2002-10-20-12.00.00') --将字符串转换成日期或时间值(结果=2002-10-20 12:00:00)values date('1999-10-22 12:12:02')--将字符串类型转换为日期类型(结果=1999-10-22)values date('10/20/2002')--将字符串类型转换为日期类型(结果=2002-10-20)values time ('12:00:00')--将字符串类型转换为时间类型(结果=12:00:00)values time ('12.00.00')--将字符串类型转换为时间类型(结果=12:00:00)values char(current date)--将日期转换为字符串(结果=2013-06-02)values (current date + 1 year + 3 years + 2 months + 15 days)--还可以使用英语来执行日期计算values(current time + 5 hours - 3 minutes + 10 seconds)--还可以使用英语来执行时间计算values days (date('1999-11-02')) - days(date('1999-10-30')) --要计算两个日期之间的天数,您可以对日期作减法(结果=3)values current time - current timezone--要使当前时间或当前时间戳记调整到 GMT/CUT,则把当前的时间或时间戳记减去当前时区寄存器(结果=04:58:00)values current timestamp - current timezone--(结果=2013-06-02 04:59:15)values current timestamp - microsecond (current timestamp) microseconds --获得微秒部分归零的当前时间戳记values varchar_format(current timestamp,'yyyy-mm-dd')--从已使用字符模板解释的字符串返回时间戳记(结果=2013-06-02)values to_char(current timestamp,'yyyy-mm-dd')--返回已用字符模板进行格式化的时间戳记的字符表示,TO_CHAR 是 VARCHAR_FORMAT 的同义词(结果=2013-06-02)values timestamp_format('1999-11-02','yyyy-mm-dd')--从已使用字符模板解释的字符串返回时间戳记(结果=1999-11-02 00:00:00)values to_date('1999-11-02','yyyy-mm-dd')--从已使用字符模板解释过的字符串返回时间戳记,TO_DATE 是 TIMESTAMP_FORMAT 的同义词(结果=1999-11-02 00:00:00)values timestampdiff (16, char(timestamp('2002-11-30-00.00.00')-timestamp('2002-11-08-00.00.00'))) --(结果=22)--根据两时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差,但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有30 天。--对于第1个参数,可以使用以下各值来替代,以指出结果的时间单位: --1 = 秒的小数部分  --2 = 秒  --4 = 分  --8 = 时  --16 = 天  --32 = 周  --64 = 月  --128 = 季度  --256 = 年  --当日期很接近时使用timestampdiff() 比日期相差很大时精确。如果需要进行更精确的计算,可以使用以下方法来确定时差(按秒计): --(DAYS(t1) - DAYS(t2)) * 86400 +  (MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2)) --为方便起见,还可以对上面的方法创建SQL 用户定义的函数: --CREATE FUNCTION secondsdiff(t1 TIMESTAMP, t2 TIMESTAMP) --RETURNS INT --RETURN ( --(DAYS(t1) - DAYS(t2)) * 86400 +   --(MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2)) --)@--如果需要确定给定年份是否是闰年,以下是一个很有用的SQL 函数,您可以创建它来确定给定年份的天数: --CREATE FUNCTION daysinyear(yr INT) --RETURNS INT --RETURN (CASE (mod(yr, 400)) WHEN 0 THEN 366 ELSE  --        CASE (mod(yr, 4))   WHEN 0 THEN  --        CASE (mod(yr, 100)) WHEN 0 THEN 365 ELSE 366 END   --       ELSE 365 END --END)@ 


 

原创粉丝点击