课题_DB2日期和时间常用汇总
db2获取年月的方法 -回复
db2获取年月的方法-回复Db2是一种关系型数据库管理系统,被广泛应用于企业级应用程序开发。
在使用Db2的过程中,经常需要获取年月数据,并对其进行处理和分析。
本文将详细介绍如何使用Db2获取年月数据的方法,以及一些常用的处理和分析技巧。
首先,我们需要了解在Db2中如何表示年月数据。
在Db2中,通常使用DATE或TIMESTAMP数据类型来表示日期和时间。
DATE类型只表示年月日,而TIMESTAMP类型则包含年月日和时分秒。
根据具体需求,我们可以选择使用其中之一来表示年月数据。
1. 获取当前年月获取当前年月是在数据处理中一项常见的需求。
在Db2中,可以使用CURRENT_DATE或CURRENT_TIMESTAMP函数来获取当前的日期和时间。
我们可以通过截取函数来获取年月数据。
例如,使用CURRENT_DATE函数获取当前日期,并使用DATE函数将其转换为DATE类型:SELECT DATE(CURRENT_DATE) FROM SYSIBM.SYSDUMMY1;运行以上SQL语句后,将返回当前的日期,格式为YYYY-MM-DD。
我们可以通过使用SUBSTR函数来截取年月数据:SELECT SUBSTR(CHAR(DATE(CURRENT_DATE)), 1, 7) FROM SYSIBM.SYSDUMMY1;上述SQL语句将返回当前的年月,格式为YYYY-MM。
这样,我们就成功地获取到了当前的年月数据。
2. 获取指定日期的年月在数据处理中,我们可能还需要获取指定日期的年月数据。
可以通过将日期转换为字符型,然后截取所需的年份和月份数据来实现。
例如,获取1970年11月的年月数据:SELECT SUBSTR(CHAR(DATE('1970-11-01')), 1, 7) FROM SYSIBM.SYSDUMMY1;上述SQL语句将返回1970年11月的年月数据,格式为YYYY-MM。
db2时间函数
db2时间函数1. 介绍时间函数是数据库管理系统中的一种特殊函数,用于处理和操作日期和时间数据。
在DB2数据库中,有许多内置的时间函数可用于执行各种日期和时间操作。
这些函数提供了方便和灵活的方法来处理日期和时间,并支持各种常见的日期和时间计算。
2. 常用的时间函数以下是一些常用的时间函数,可以在DB2数据库中使用:2.1 CURRENT_DATECURRENT_DATE函数返回当前日期。
它返回一个日期值,表示当前系统日期。
2.2 CURRENT_TIMECURRENT_TIME函数返回当前时间。
它返回一个时间值,表示当前系统时间。
2.3 CURRENT_TIMESTAMPCURRENT_TIMESTAMP函数返回当前日期和时间。
它返回一个时间戳值,表示当前系统日期和时间。
2.4 DATEDATE函数用于从日期时间戳值中提取日期部分。
它接受一个时间戳值作为参数,并返回一个日期值。
2.5 TIMETIME函数用于从日期时间戳值中提取时间部分。
它接受一个时间戳值作为参数,并返回一个时间值。
2.6 TIMESTAMPTIMESTAMP函数用于将日期和时间组合成一个时间戳值。
它接受日期和时间值作为参数,并返回一个时间戳值。
2.7 YEARYEAR函数用于从日期或时间戳值中提取年份部分。
它接受一个日期或时间戳值作为参数,并返回一个整数值,表示年份。
2.8 MONTHMONTH函数用于从日期或时间戳值中提取月份部分。
它接受一个日期或时间戳值作为参数,并返回一个整数值,表示月份。
2.9 DAYDAY函数用于从日期或时间戳值中提取天数部分。
它接受一个日期或时间戳值作为参数,并返回一个整数值,表示天数。
2.10 HOURHOUR函数用于从时间或时间戳值中提取小时部分。
它接受一个时间或时间戳值作为参数,并返回一个整数值,表示小时。
2.11 MINUTEMINUTE函数用于从时间或时间戳值中提取分钟部分。
它接受一个时间或时间戳值作为参数,并返回一个整数值,表示分钟。
db2日期时间格式
db2⽇期时间格式1、db2可以通过SYSIBM.SYSDUMMY1、SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值。
SELECT 'HELLO DB2' FROM SYSIBM.SYSDUMMY1;--HELLO DB2SELECT 'HELLO DB2' FROM SYSIBM.DUAL;--HELLO DB2VALUES 'HELLO DB2';--HELLO DB22、CURRENT DATE获取当前⽇期;CURRENT TIME获取当前时间;CURRENT TIMESTAMP获取当前时间戳(含年、⽉、⽇、时、分、秒)。
VALUES CURRENT DATE--2012/5/25 0:00:00;VALUES CURRENT TIME--20:48:53;VALUES CURRENT TIMESTAMP--2012/5/25 20:49:12;3、YEAR()获取年;MONTH()获取⽉;DAY()获取⽇;HOUR()获取⼩时;MINUTE()获取分钟;SECOND()获取秒;DATE()获取⽇期;TIME()获取时间;TIMESTAMP()获取时间戳。
以上函数参数可以是⽇期时间类型,也可以为⽇期时间格式的字符串。
VALUES YEAR(CURRENT TIMESTAMP);/*2012*/ VALUES YEAR('2012-05-25 21:18:12');/*2012*/VALUES MONTH(CURRENT TIMESTAMP);/*5*/ VALUES MONTH('2012-05-25 21:18:12');/*5*/VALUES DAY(CURRENT TIMESTAMP);/*25*/ VALUES DAY('2012-05-25 21:18:12');/*25*/VALUES HOUR(CURRENT TIMESTAMP);/*21*/ VALUES HOUR('2012-05-25 21:18:12');/*21*/VALUES MINUTE(CURRENT TIMESTAMP);/*18*/ VALUES MINUTE('2012-05-25 21:18:12');/*18*/VALUES SECOND(CURRENT TIMESTAMP);/*12*/ VALUES SECOND('2012-05-25 21:18:12');/*12*/VALUES DATE(CURRENT TIMESTAMP);/*2012/5/25 0:00:00*/ VALUES DATE('2012-05-25 21:18:12');/*2012/5/25 0:00:00*/VALUES TIME(CURRENT TIMESTAMP);/*21:18:12*/ VALUES TIME('2012-05-25 21:18:12');/*21:18:12*/VALUES TIMESTAMP(CURRENT TIMESTAMP);/*2012/5/25 21:18:12*/ VALUES TIMESTAMP('2012-05-25 21:18:12');/*2012/5/25 21:18:12*/4、db2时间可以直接加减带单位的时间长度。
db2常用命令
db2常用命令DB2,全称为DataBase 2,是一种常见的关系数据库管理系统。
作为IBM的一款商业软件,DB2一直获得了正面的反响。
它提供了一丛强大的数据库命令来帮助用户管理关系数据库。
下面介绍一些常用的DB2命令:1、CREATE:该命令可用于创建数据库,表,索引等,例如:CREATE DATABASE dbname;2、DROP:该命令可用于删除数据库,表,索引,和其他数据库对象,例如: DROP DATABASE dbname;3、ALTER:该命令可用于修改数据库,表,索引等,例如:ALTER TABLE tablename ADD COLUMN columnname VARCHAR(20) DEFAULT ‘default value’;4、SELECT:该命令可用于从数据库中检索数据,例如: SELECT * FROM tablename WHERE columnname =’value’;5、INSERT:该命令可用于向数据库中插入数据,例如: INSERT INTO tablename (column1,column2,column3) VALUES(value1,value2,value3 );6、UPDATE:该命令可用于更新数据库中的数据,例如: UPDATE tablename SET column=value WHERE …;7、DELETE:该命令可用于从数据库中删除数据,例如: DELETE FROM tablename WHERE column=value;8、COMMIT:该命令可以提交数据变更,例如: COMMIT;9、GRANT:该命令可用于授权指定用户使用数据库中的资源,例如: GRANT SELECT, INSERT,UPDATE ON tablename TO user1;10、REVOKE:该命令可用于取消指定用户使用数据库中的资源,例如: REVOKE SELECT,INSERT,UPDATE ON tablename FROM user1;综上所述,DB2拥有一系列非常强大的命令,能够方便用户管理关系数据库,帮助用户更高效地完成任务。
db2时间函数
db2时间函数DB2是一种关系型数据库管理系统,它提供了许多时间函数来处理日期和时间数据。
这些时间函数可以帮助用户在DB2中进行时间计算和处理,从而更好地管理和分析数据。
下面是一些常用的DB2时间函数:1. CURRENT_DATE:返回当前日期,格式为YYYY-MM-DD。
2. CURRENT_TIME:返回当前时间,格式为HH:MM:SS。
3. CURRENT_TIMESTAMP:返回当前日期和时间,格式为YYYY-MM-DD HH:MM:SS。
4. DATE:将日期字符串转换为日期类型。
5. DAY:返回日期中的天数。
6. MONTH:返回日期中的月份。
7. YEAR:返回日期中的年份。
8. HOUR:返回时间中的小时数。
9. MINUTE:返回时间中的分钟数。
10. SECOND:返回时间中的秒数。
11. TIMESTAMP:将日期和时间字符串转换为时间戳类型。
12. WEEK:返回日期所在的周数。
13. WEEKDAY:返回日期所在的星期几。
14. DAYS:计算两个日期之间的天数差。
15. MONTHS:计算两个日期之间的月数差。
16. YEARS:计算两个日期之间的年数差。
这些时间函数可以在SELECT语句中使用,以便在查询结果中显示日期和时间数据。
例如,以下查询将返回当前日期和时间:SELECT CURRENT_TIMESTAMP FROM SYSIBM.SYSDUMMY1;此外,时间函数还可以在WHERE子句中使用,以便根据日期和时间数据过滤查询结果。
例如,以下查询将返回所有在当前月份之后创建的订单:SELECT * FROM ORDERS WHERE MONTH(CREATE_DATE) > MONTH(CURRENT_DATE);总之,DB2时间函数是处理日期和时间数据的有用工具。
它们可以帮助用户更好地管理和分析数据,从而提高数据库的效率和可靠性。
DB2 V95常用函数详解(带实例)
DB2常用函数实例版使用说明:函数定义形式result : schema-name.funcation_name(para-list)其中参数列表形式,<>表示必选参数,[]表示可选参数,|表示任选其一下面的所有实例均在DB2 V95版本测试通过,如果是新版本会加注。
any-builtin-type:Any data type that is not a distinct type structured-type:Any user-defined structured type defined to the databasecharacter-type:Any of the character string types: CHAR, VARCHAR, LONG VARCHAR, CLOB.datetime-type:Any of the datetime types: DATE, TIME, TIMESTAMPgraphic-type:Any of the double byte character string types: GRAPHIC, VARGRAPHIC, LONGVARGRAPHIC, DBCLOB.string-type:Any type from character type, graphic-type or BLOB numeric-type:Any of the numeric types: SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE.函数定义的Schema有sysfun和sysibm1 字符串函数ascii 返回字符串首字符的ASCII码值integer : sysfun.ascii(<char>|<varchar(4000)>|<clob(1M)>) values sysfun.ascii('A'),sysfun.ascii('ABC'),sysfun.ascii('中国人'); 结果:65 65 206hex 返回字符的十六进制值varchar : hex(<any-type>)values hex('中'),hex('A'),x'41',x'E590B4'; 结果:E590B4 41 A 中chr 返回ASCII值对应的字符char : sysfun.chr(<integer>)values sysfun.chr(89); 结果:Yconcat 字符串连接string-type : sysibm.concat(<string-type>,<string-type>) values sysibm.concat('hello','world');结果:helloworldlower,lcase 转小写,upper,ucase 转大写varchar(4000)|clob(1M) : sysfun.lcase(<varchar(4000>|<clob(1M)>)char|varchar : sysibm.lower(<char>|<varchar>)values sysibm.lower('Your Name'),sysibm.upper('Your Name'); 结果:your name YOUR NAMEvalues sysibm.lcase('Your Name'),sysfun.ucase('Your Name'); 结果:your name YOUR NAMEltrim 去左空格,rtrim 去右空格,trim 去左右空格char|varchar|graphic sysibm.ltrim(<char>|<varchar>|<graphic>)varchar(4000)|clob(1M) sysfun.ltrim(<varchar(4000)>|<clob(1M)>)rtrim定义同ltrim,只不过trim函数定义不清楚values '['||sysibm.ltrim(' h w ')||']','['||sysfun.rtrim(' h w ')||']','['||trim(' h w ')||']'; 结果:[h w ] [ h w] [h w]trim 去除表达式前后指定的字符,默认是空格character-type : sysibm.trim([B|BOTH|L|LEADING|T|TRAILING] <strip-express> FROM <string-express>) 将表达式前或后(默认是BOTH)指定的字符(strip-express)移除values trim('0' from '00012300') 结果:123strip 去除表达式前后指定的字符,默认是空格character-type : sysibm.strip(<string-express>[,B|BOTH|L|LEADING|T|TRAILING,< strip-express>])values strip('**88000***',b,'*') 结果:88000posstr 查找字符串位置(从1开始计数),没有找到返回0string-type : sysibm.posstr(<string-type:source-string>,<string-type:search-s tring>) 前者为source-string,后为search-stringvalues sysibm.posstr('the one is not that one','one'); 结果:5 position 查找字符串位置,与posstr功能类似,由于考虑到不同国家的字符集,增强编码模式string-type : sysibm.position(<string-type:source-string>,<string-type:search -string>,CODEUNITS16|CODEUNITS32|OCTETS)values position('a','abca',OCTETS) 结果:1locate 搜索子字符串出现的位置,找不到返回0integer : sysfun.locate(<varchar(4000):exp1>,<varchar(4000):exp2>[,inte ger]) 其中varchar(4000)还可以换成clob(1M)或blob(1M)values sysfun.locate('y','yesterday'),sysfun.locate('y','yesterday',2); 结果: 1 9repeat 重复字符串varchar(4000)|clob(1M)|blob(1M) : sysfun.repeat(<varchar(4000)>|<clob(1M)>|<blob(1M)>,<integ er>)values sysfun.repeat('ab',5); 结果:abababababspace 产生空格varchar(4000) : sysfun.space(<integer>)values '['||sysfun.space(5)||']' ; 结果:[ ]replace 替换字符串varchar(4000)|clob(1M)|blob(1M) : sysfun.replace(<varchar(4000):exp1>,<varchar(4000):exp2>,<var char(4000):exp3>) 在exp1中查找所有exp2使用exp3来替换values sysfun.replace('abac','a','d'); 结果:dbdcleft 返回左边字符串right 返回右边字符串varchar(4000)|clob(1M)|blob(1M) : sysfun.left(<varchar(4000)>|<clob(1M)>,<integer>) right函数同样定义values left('adf.adf',5),right('adf.adf',5) ; 结果:adf.a f.adf values right(digits(3),5),left(rtrim(char(3))||'00000',5); 结果: 00003 30000 这也是左补零右补零的方法substr 截取字符中string-type : sysibm.substr(<string-type:string>,<integer:start>[,integer:leng th]) 要求start从1~string的长度,如果指定length的话,要求必须能取到length位字符,不然会报错。
db2 timestamp 函数
db2 timestamp 函数DB2是一个关系型数据库管理系统,它被广泛应用于企业级应用程序中。
DB2提供了许多内置函数,用于执行各种操作和计算。
其中,timestamp 函数用于处理日期和时间数据。
本文将逐步解释DB2的timestamp函数,并说明如何使用它进行日期和时间操作。
1. 什么是timestamp函数?timestamp函数是DB2中与日期和时间相关的函数之一。
它接受日期和时间作为输入,并返回一个包含日期和时间信息的特定格式的字符串。
timestamp函数可以在SELECT语句中使用,也可以在INSERT或UPDATE语句中使用。
2. timestamp函数的语法是什么?timestamp函数的基本语法如下:TIMESTAMP (expression1 [AS timezone-expression])其中,expression1是一个表示日期和时间的输入表达式。
timezone-expression是一个可选的参数,用于指定时区信息。
如果省略时区参数,timestamp函数将根据数据库配置的默认时区进行操作。
3. timestamp函数的用途是什么?timestamp函数的主要用途是执行日期和时间相关的计算和操作。
它可以用于以下方面:- 将日期和时间数据转换为特定字符串格式,用于显示或存储。
- 比较两个日期或时间,并确定它们的顺序。
- 添加或减去一定的时间量,以实现日期和时间的偏移。
- 提取日期部分或时间部分,以获取特定的信息。
4. 如何使用timestamp函数进行日期和时间转换?要将日期或时间转换为特定字符串格式,可以使用timestamp函数的以下用法之一:- SELECT TIMESTAMP(date_column) FROM table_name;- SELECT TIMESTAMP(time_column) FROM table_name;- SELECT TIMESTAMP(datetime_column) FROM table_name;在这些示例中,date_column,time_column和datetime_column是包含日期或时间数据的列名,table_name是包含这些列的表名。
DB2 日期函数计算日期差
DB2 日期函数计算日期差2012-11-07 22:19:50| 分类:DB2知识|举报|字号订阅1.获得当前时间与someday的日期差值。
SELECT days(current date) - days(someday)select days(current timestamp) - days(‘2012-02-03 12:01:02.236000’)2.DayofWeek 返回参数中的星期几,用范围1--7表示,其中1代表星期日3.DayofWeek_ISO返回参数中的星期几,用范围1--7表示,其中1代表星期一--取日期SELECT CURRENT DATE FROM sysibm.sysdummy1;--返回数据类型:DATE--结果集(YYYY-MM-DD):2005-12-22--取时间SELECT CURRENT TIME FROM sysibm.sysdummy1;--返回数据类型:TIME--结果集(HH-MM-SS):10:10:21--取时间戳记SELECT CURRENT TIMESTAMP FROM sysibm.sysdummy1;--返回数据类型:TIMESTAMP--结果集(YYYY-MM-DD HH-MM-SS XXXXXX): 2005-12-22 10:10:22 187002说明:sysibm.sysdummy1表是一个特殊的内存中的表,专门用于存储系统日期和时间。
推荐大家使用VALUES 函数直接来进行操作。
以上的语句可以改写为:--取日期VALUES CURRENT DATE;--取时间VALUES CURRENT TIME;--取时间戳记VALUES CURRENT TIMESTAMP;2、DB2中日期、时间的常用函数介绍VALUES YEAR(CURRENT TIMESTAMP);--返回值:2005--取月份VALUES MONTH(CURRENT TIMESTAMP);--返回值:12--取天VALUES DAY(CURRENT TIMESTAMP);--返回值:22--取星期VALUES DAYOFWEEK(CURRENT TIMESTAMP);--返回值:5--说明:取值范围为1-7,1代表星期日,所以今天是星期四,得出的值为5!VALUES DAYNAME(CURRENT TIMESTAMP);--返回值:星期五--取小时VALUES HOUR(CURRENT TIMESTAMP);--返回值:10--取分钟VALUES MINUTE(CURRENT TIMESTAMP);--返回值:27--取秒VALUES SECOND(CURRENT TIMESTAMP);--返回值:08--取毫秒VALUES MICROSECOND(CURRENT TIMESTAMP);--返回值:890001说明:以上函数可以直接供大家在存储过程以及自定义函数或者触发器中直接调用,所有返回类型均为INTEGER--取日期VALUES DATE(CURRENT TIMESTAMP);--返回数据类型:DATE--返回值:2005-12-22VALUES TIME(CURRENT TIMESTAMP);--返回数据类型:TIME--返回值:10:30:483、DB2中日期、时间的计算--取明年的今天VALUES CURRENT DATE + 1 YEAR;--返回值:2006-12-12--取前年的今天(两种写法都合法)VALUES CURRENT DATE - 2 YEAR;VALUES CURRENT DATE - 2 YEARS;--返回值:2003-12-12--取下一个小时后的时间VALUES CURRENT TIME + 1 HOUR;--返回值:11:38:25--混合应用的示例1VALUES CURRENT DATE + 2 YEARS - 1 MONTH + 10 DAYS;--返回值:2007-12-2(笔者的当前日期为:2005-12-22,大家可以自己计算一下)--混合应用的示例2VALUES CURRENT TIME + 5 HOURS - 3 MINUTES + 10 SECONDS;--返回值:15:39:22(笔者的当前时间为:10:42:12,大家可以自己计算一下)--计算两个日期之间的间隔天数VALUES DAYS(CURRENT DATE) - DAYS('2005-01-01');--返回值:355说明:DB2中日期、时间的计算非常的灵活,大家可以根据实际需求进行自己的计算4、DB2中日期、时间的类型转换--将日期、时间类型转换为字符串型VALUES CHAR(CURRENT DATE);VALUES CHAR(CURRENT TIMESTAMP);--将字符串型转换为日期、时间类型VALUES TIMESTAMP ('2005-12-22-12.00.00.000000');VALUES TIMESTAMP ('2005-12-22 12:00:00');VALUES DATE ('2005-12-22');VALUES DATE ('12/22/2005');--注意:该格式为(MM/DD/YYYY)VALUES TIME ('12:00:00');VALUES TIME ('12.00.00');说明:在实际应用中,TIMESTAMP()、DATE() 和TIME() 函数接受更多种格式。
DB2函数大全
DB2函数大全函数名函数解释函数举例AVG()返回一组数值的平均值. SELECTAVG(SALARY)FROMBSEMPMS; CORR(),CORRELATION()返回一对数值的关系系数.SELECT CORRELATION(SALARY,BONUS)FROM BSEMPMS; COUNT()返回一组行或值的个数.SELECTCOUNT(*)FROMBSEMPMS; COVAR(),COVARIANCE()返回一对数值的协方差.SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS;MAX()返回一组数值中的最大值.SELECTMAX(SALARY)FROMBSEMPMS;MIN()返回一组数值中的最小值.SELECTMIN(SALARY)FROMBSEMPMS;STDDEV()返回一组数值的标准偏差.SELECTSTDDEV(SALARY)FROMBSEMPMS;SUM()返回一组数据的和.SELECTSUM(SALARY)FROMBSEMPMS;VAR(),VARIANCE()返回一组数值的方差.SELECTVARIANCE(SALARY)FROMBSEMPMS;ABS(),ABSVAL()返回参数的绝对值.SELECTABS(-3.4)FROMBSEMPMS;ACOS()返回参数的反余弦值.SELECTACOS(0.9)FROMBSEMPMS;ASCII()返回整数参数最左边的字符的ASCII码. SELECTASCII('R')FROMBSEMPMS; ASIN()返回用弧度表示的角度的参数的反正弦函数. SELECTASIN(0.9)FROMBSEMPMS; ATAN()返回参数的反正切值,该参数用弧度表示的角度的参数.SELECTATAN(0.9)FROMBSEMPMS;ATAN2()返回用弧度表示的角度的X和Y坐标的反正切值.SELECTATAN2(0.5,0.9)FROMBSEMPMS;BIGINT()返回整型常量中的数字或字符串的64位整数表示SELECTBIGINT(EMP_NO)FROMBSEMPMS;CEILING() OR CEIL()返回比参数大或等于参数的最小的整数值CHAR()返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示. SELECTCHAR(SALARY,',')FROMBSEMPMS;CHR()返回具有由参数指定的ASCII码的字符SELECTCHAR(167)FROMBSEMPMS;CONCAT()返回两个字符串的连接.SELECTCONCAT(EMP_NO,EMP_NAM)FROMBSEMPMS;YEAR()返回数值的年部分.SELECTYEAR('2003/01/02')FROMBSEMPMS;VARCHAR()返回字符串,日期型,图形串的可变长度的字符串表示SELECTVARCHAR(EMP_NAM,50)FROMBSEMPMS;UCASE() OR UPPER()返回字符串的大写TRUNCATE() OR TRUNC()从表达式小数点右边的位置开始截断并返回该数值.SELECTTRUNCATE(345.6789,2)FROMBSEMPMS;TIME()返回一个数值中的时间SELECTTIME('2001-03-19.12.30.123456')FROMBSEMPMS;SUBSTR(EXP1,EXP2)返回EXP1串自EXP2处开始的子串.SQRT()返回该参数的平方根.SELECTSQRT(36)FROMBSEMPMS;SPACE()返回由参数指定的长度,包含空格在内的字符串.SELECTSPACE(10)FROMBSEMPMS; SECOND()返回一个数值的秒部分.SELECTSECOND('18:34:32')FROMBSEMPMS;RTRIM()删除字符串尾部的空格.SELECTRTRIM('COMMENT')FROMBSEMPMS;ROUND(EXP1,EXP2)返回EXP1小数点右边的第EXP2位置处开始的四舍五入值.SELECTROUND(2345.6789,2)FROMBSEMPMSREPLACE(EXP1,EXP2,EXP3)用EXP3替代EXP1中所有的EXP2SELECTCHAR(REPLACE('ROMANDD','NDD','CCB'),10)FROMBSEMPMS;REPEAT(EXP1,EXP2)返回EXP1重复EXP2次后的字符串.SELECTCHAR(REPEAT('REPEAT',3),21)FROMBSEMPMS;REAL()返回一个数值的单精度浮点数表示.SELECTREAL(10)FROMBSEMPMS;RAND()返回0和1之间的随机浮点数.SELECTRAND()FROMBSEMPMS;POWER(EXP1,EXP2)返回EXP1的EXP2次幂.SELECTPOWER(2,5)FROMBSEMPMS;POSSTR(EXP1,EXP2)返回EXP2在EXP1中的位置.SELECT('ABCDEFGH','D')FROMBSEMPMS;NULLIF(EXP1,EXP2)如果EXP1=EXP2,则为NULL,否则为EXP1NODENUMBER()返回行的分区号.SELECTNODENUMBER(EMP_NO)FROMBSEMPMS;MONTH()返回一个数值的月部分.SELECTMONTH('2003/10/20')FROMBSEMPMS;MOD(EXP1,EXP2)返回EXP1除以EXP2的余数.SELECTMOD(20,8)FROMBSEMPMSMINUTE()返回一个数值的分钟部分.SELECTMINUTE('18:34:23')FROMBSEMPMS;LTRIM()删除字符串前面的空格.SELECTLTRIM('CDDD')FROMBSEMPMS;HOUR()返回一个数值的小时部分.SELECTHOUR('18:34:23')FROMBSEMPMS;DOUBLE()如果参数是一个数字表达式,返回与其相对应的浮点数,如果参数是字符串表达式,则返回该数的字符串表达式.SELECTDOUBLE('5678')FROMBSEMPMS;EXP()返回参数的指数函数.SELECTEXP(2)FROMBSEMPMS;FLOAT()返回一个数的浮点表示.SELECTFLOAT(789)FROMBSEMPMS;FLOOR()返回小于或等于参数的最大整数.SLECTFLOOR(88.93)FROMBSEMPMS;HEX()返回一个表示为字符串的值的16进制表示.SELECTHEX(16)FROMBSEMPMS;DAYNAME返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。
DB2中关于日期时间格式的函数
DB2中关于日期时间格式的函数执行日期和时间计算:/*在当前时间的基础上,增减*/current date + 1 YEARcurrent date + 3 YEARS + 2 MONTHS + 15 DAYScurrent time + 5 HOURS - 3 MINUTES + 10 SECONDS要计算两个日期之间的天数,您可以对日期作减法,如下所示:days (current date) - days (date('1999-10-22'))获得微秒部分归零的当前时间戳记:CURRENT TIMESTAMP - MICROSECOND (current timestamp) MICROSECONDS 将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。
为此,只要使用CHAR() 函数:char(current date)char(current time)char(current date + 12 hours)char(current date,ISO)——转换成yyyy-mm-ddchar(current date,USA)——转换成mm/dd/yyyychar(current date,EUR)——转换成还有char(current date,JIS) 转换成yyyy-mm-ddchar(current date,LOCAL) 转换成mm/dd/yyyyreplace(cast(current date as char(12)),'-','') ――转换成yyyymmddreplace(char(current date,ISO),'-','') ――转换成yyyymmdd要将字符串转换成日期或时间值,可以使用:TIMESTAMP ('2002-10-20-TIMESTAMP ('2002-10-20 12:00:00')DATE ('2002-10-20')DATE ('10/20/2002')TIME ('12:00:00')TIME ('要使用SQL 获得当前的日期、时间及时间戳记,请参考适当的DB2 寄存器:SELECT current date FROM sysibm.sysdummy1SELECT current time FROM sysibm.sysdummy1SELECT current timestamp FROM sysibm.sysdummy1sysibm.sysdummy1 表是一个特殊的内存中的表,用它可以发现如上面演示的DB2 寄存器的值。
DB2内置函数大全整理
DB2内置函数大体分为以下几类:1. 聚合函数2. 类型转换函数3. 数学函数4. 字符串函数5. 日期时间函数6. XML函数7. 分区函数8. 安全函数9. 其他F面我们就了解一下每类都有哪些函数,以及这些函数的功能。
:聚合函数1. 函数功能描述2. cou nt() 返回查询记录数3. sum() 返回合计值4. avg() 返回平均值5. max() 返回最大值6. min() 返回最小值:类型转换函数DB2为每种数据类型都提供了相应的函数,一般情况下它们之间的相互转换是非常简单的,请看下表:1. 函数功能描述2. SMALLINT 返回SMALLINT类型的值3. INTEGER返回INTEGER类型的值4. BIGINT 返回BIGINT 类型的值5. DECIMAL返回DECIMAL类型的值6. REAL 返回REAL类型的值7. DOUBLE返回DOUBLE类型的值8. FLOAT 返回FLOAT类型的值9. CHAR 返回CHARACTER类型的值10. VARCHAR返回VARCHAR类型的值11. VARCHAR_FORMAT_BIT将位字符序列格式化为VARCHAR类型返回12. VARCHAR_BIT_FORMAT将格式化后位字符序列返回到格式化前13. LONG_VARCHAR 返回LONG VARCHAR 类型的值14. CLOB 返回CLOB类型的值15. GRAPHIC返回GRAPHIC类型的值16. VARGRAPHIC 返回VARGRAPHIC 类型的值17. LONG_VARGRAPHIC返回LONG VARGRAPHIC 类型的值18. DBCLOB 返回DBCLOB类型的值19. BLOB 返回BLOB类型的值20. DATE 返回DATE类型的值21. TIME 返回TIME类型的值22. TIMESTAMP 返回TIMESTAMP类型的值三:数学函数1. 函数功能描述2. ABS,ABSVAL 返回参数的绝对值3. SIGN 如果参数大于0则返回1,小于0返回-1,等于0返回04. RAND 返回0和1之间的随机浮点数5. MOD求余数6. ROUND 返回参数1小数点右边的第参数2位置处开始的四舍五入值7. TRUNCATE OR TRUNC 从表达式小数点右边的位置开始截断并返回该数值8. FLOOR 返回小于或等于参数的最大整数9. CEILING OR CEIL 返回大于或等于参数的最小的整数值10. POWER 返回参数1的参数2次幂11. SQRT 返回该参数的平方根12. DIGITS 返回参数绝对值的字符串表示13. MULTIPLY_ALT 返回参数的乘积14. DEGREES求角度15. RADIANS将度转换为弧度16. SIN正弦函数17. SINH 双曲线正弦函数18. ASIN 反正弦函数19. COS余弦函数20. COSH 双曲线余弦函数21. ACOS 反余弦函数22. TAN正切函数23. TANH 双曲线正切函数24. ATAN 反正切函数25. ATANH 双曲线反正切函数26. ATAN2 反正切函数27. COT余切函数28. LN返回参数的自然对数29. LOG返回参数的自然对数30. LOG10 返回基于10的自然对数31. EXP返回参数的指数函数四:字符串函数1. 函数功能描述2. ASCII 将字符转化为ASCII码3. CHR将ASCII码转化为字符4. STRIP 删除字符串开始和结尾的空白字符或其他指定的字符5. TRIM 删除字符串开始和结尾的空白字符或其他指定的字符6. LTRIM 删除字符串开始的空白字符7. RTRIM 删除字符串尾部的空白字符8. LCASE or LOWER 返回字符串的小写9. UCASE OR UPPER 返回字符串的大写10. SUBSTR返回子串11. SUBSTRING 返回子串12. LEFT 返回开始的N个字符13. RIGHT 返回结尾的N个字符14. POSITION 返回参数2在参数1中的第一次出现的位置15. POSSTR返回参数2在参数1中的第一次出现的位置16. LOCATE返回参数2在参数1中的第一次出现的位置17. SPACE 返回由参数指定的长度,包含空格在内的字符串18. REPEAT回参数1重复参数2次后的字符串19. CONCAT连接两个字符串20. INSERT 向指定字符串添加字符串21. REPLACE替换字符串22. TRANSLATE 将字符串中的一个或多个字符替换为其他字符23. CHARACTER_LENGTH 返回字符串的长度24. OCTET_LENGTH 返回字符串的字节数25. ENCRYPT对字符串加密26. DECRYPT_BIN and DECRYPT_CHARs 对加密后的数据解密27. GETHINT返回密码提示28. GENERATEJJNIQUE生成唯一字符序列五:日期时间函数1. 函数功能描述2. YEAR 返回日期的年部分3. MONTH 返回日期的月部分4. DAY返回日期的日部分5. HOUR 返回日期的小时部分6. MINUTE返回日期的分钟部分7. SECOND返回日期的秒部分8. MICROSECOND返回日期的微秒部分9. MONTHNAME返回日期的月份名称10. DAYNAME返回日期的星期名称11. QUARTER返回指定日期是第几季度12. WEEK 返回当前日期是一年的第几周,每周从星期日开始13. WEEK_ISO 返回当前日期是一年的第几周,每周从星期一开始14. DAYOFWEEK返回当前日期是一周的第几天,星期日是115. DAYOFWEEK_ISO 返回当前日期是一周的第几天,星期一是 116. DAYOFYEAR 返回当前日期是一年的第几天17. DAYS 返回用整数表示的时间,用来求时间间隔18. JULIAN_DAY 返回从January 1,4712 B.CQulian date calendar)到指定日期的天数19. MIDNIGHT_SECONDS 返回午夜到指定时间的秒数20. TIMESTAMPDIFF 返回两个timestamp 型日期的时间间隔21. TIMESTAMP_ISO 返回timestamp 类型的日期22. TO_CHAR返回日期的字符串表示23. VARCHAR_FORMAT将日期格式化为字符串24. TO_DATE将字符串转化为日期25. TIMESTAMP_FORMAT 将字符串格式化为日期六:XML函数DB2 UDB Version 8.2 支持七种SQL/XML发布函数:1. 函数功能描述2. XMLSERIALIZE 将XML值转化成存储为CHAR VARCHA或CLOB值的字符串3. XMLELEMENT 构造一个命名的XML元素节点4. XMLFOREST构造一个XML元素节点序列(森林)5. XMLATTRIBUTES为XML元素节点构造一个或多个XML属性节点6. XMLCONCAT 生成XML表格数据7. XMLAGG 在生成的XML值中将XML值聚合为一系列的项。
db2 月份between写法
DB2数据库是一种常用的关系型数据库管理系统,其SQL语言的写法对于数据查询和操作十分重要。
在DB2中,月份的between写法涉及到日期和时间的处理,对于开发人员和DB2数据库管理员来说,了解月份的between写法是非常重要的。
本文将从几个方面介绍DB2中月份的between写法,以供大家参考和学习。
一、日期和时间数据类型在DB2中,日期和时间数据类型分别为DATE和TIME。
这两种数据类型可以用于存储日期和时间信息,而在进行日期和时间计算时也需要特别注意。
在DB2中,日期格式通常为'YYYY-MM-DD',时间格式通常为'HH:MM:SS'。
二、月份的between写法月份的between写法在实际应用中经常用到,特别是在查询指定时间段内的数据时。
在DB2中,我们可以使用MONTH函数和BETWEEN运算符来实现月份的between写法。
具体写法如下:1. 使用MONTH函数在DB2中,MONTH函数用于从日期中提取月份部分。
基本语法如下:```sqlSELECT MONTH(date_column) FROM table_name;```其中,date_column为日期字段名,table_name为表名。
2. 使用BETWEEN运算符在DB2中,BETWEEN运算符用于指定范围内的值。
结合MONTH函数,可以实现月份的between写法。
基本语法如下:```sqlSELECT * FROM table_name WHERE MONTH(date_column) BETWEEN start_month AND end_month;```其中,date_column为日期字段名,table_name为表名,start_month和end_month为起始月份和结束月份。
三、示例以下是一个简单的示例,演示了在DB2中实现月份的between写法:```sqlSELECT * FROM employee WHERE MONTH(join_date) BETWEEN 6 AND 9;```以上SQL语句将查询员工表中入职日期在6月至9月之间的员工信息。
DB2常用函数总结
DB2常用函数总结DB2是一种关系型数据库管理系统,它具有强大的功能和丰富的函数库。
本文将总结一些DB2常用的函数,以帮助开发人员更好地使用DB2数据库。
1.字符串函数:-LENGTH:返回一个字符串的长度。
-CONCAT:将两个或多个字符串合并成一个字符串。
-SUBSTR:截取一个字符串的指定部分。
-LOWER:将一个字符串转换为小写。
-UPPER:将一个字符串转换为大写。
-TRIM:去除字符串的前后空格。
-REPLACE:替换一个字符串中的指定子字符串。
2.数字函数:-SUM:求一列数值的和。
-AVG:求一列数值的平均值。
-MAX:求一列数值的最大值。
-MIN:求一列数值的最小值。
-COUNT:统计一列数值的个数。
3.日期和时间函数:-CURRENT_DATE:返回当前日期。
-CURRENT_TIME:返回当前时间。
-CURRENT_TIMESTAMP:返回当前日期和时间。
-DATE:从日期和时间中提取日期部分。
-TIME:从日期和时间中提取时间部分。
-TIMESTAMP:将日期和时间组合为一个时间戳。
4.聚合函数:-GROUP_CONCAT:将一列值连接成一个字符串。
-GROUP_SUM:对一列值进行分组求和。
-GROUP_AVG:对一列值进行分组求平均值。
-GROUP_MAX:对一列值进行分组求最大值。
-GROUP_MIN:对一列值进行分组求最小值。
-GROUP_COUNT:对一列值进行分组计数。
5.高级函数:-ROW_NUMBER:为查询结果中的每一行分配一个唯一的编号。
-RANK:为查询结果中的每一行分配一个排名。
-DENSE_RANK:为查询结果中的每一行分配一个排名,相同值的行具有相同的排名。
-NTILE:将查询结果中的行分成指定数量的组,每个组具有相同数量的行。
-LAG:获取查询结果中前一行的值。
-LEAD:获取查询结果中下一行的值。
总结:本文总结了一些DB2常用的函数,包括字符串函数、数字函数、日期和时间函数、聚合函数以及一些高级函数。
db2 字符串函数转时间
db2 字符串函数转时间
在DB2中,可以使用字符串函数来将字符串转换为时间。
下面是一些常见的方法:
- DATE函数:该函数可以将字符串格式的日期转换为日期格式。
例如:SELECT DATE ('2022-01-01') FROM SYSIBM.SYSDUMMY1。
- TO_CHAR函数:该函数可以将日期时间类型转换为字符串类型,并且可以指定转换的格式。
例如:TO_CHAR()把时间转换成指定格式的字符串类型(DB2较低版本不支持),其中MI:SS表示十二小时制,YYYY-MM-DD HH24:MI:SS表示二十四小时制。
在实际应用中,你可以根据具体的需求选择合适的函数来进行转换。
如果你还有其他问题,请随时向我提问。
DB2常用函数总结
DB2常用函数总结一、数学函数:1.ABS(x):返回实数参数x的绝对值。
2.MOD(x,y):返回x除以y的余数。
3.POWER(x,y):返回x的y次幂。
4.SQRT(x):返回x的平方根。
5.EXP(x):返回自然指数e的x次幂的值。
6.LOG10(x):返回x的以10为底的对数值。
7.CEILING(x):返回x的最小整数。
8.FLOOR(x):返回x的最大整数。
9.SIGN(x):返回实数参数x的符号,依下表返回:X返回值00非01负数-1二、字符函数:1. LOWER(str):返回str的小写形式。
2. UPPER(str):返回str的大写形式。
3. SUBSTR(str,start,length):返回str从start开始length 长的子串。
4. CONCAT(str1,str2):返回字符串str1和str2的连接。
5. LENGTH(str):返回str长度。
6. INSTR(str1,str2):返回str2在str1中第一次出现的位置。
7. REPLACE(str,oldstr,newstr):返回将str中的oldstr全部替换为newstr的字符串。
8. TRIM(str):返回str的去掉头尾空格后的字符串。
三、时间函数:1.CURRENT:返回当前日期和时间。
2.CURRENTDATE:返回当前日期。
3.CURRENTTIME:返回当前时间。
4. DAYNAME(date):返回date的星期几。
5. DAYOFWEEK(date):返回date的星期几。
6. MONTHNAME(date):返回date的月份名称。
7. DAYOFMONTH(date):返回date的6月中的第几天。
8. YEAR(date):返回date的年份。
9. MONTH(date):返回date的月份。
10. DAY(date):返回date的天数。
db2获取年月的方法 -回复
db2获取年月的方法-回复DB2是一个关系型数据库管理系统,用于处理大规模的数据库。
在DB2中,要获取年月的方法可以使用日期函数或截取字符串。
下面将一步一步地回答中括号中的问题,并提供详细的示例来说明这些方法。
1. 使用日期函数:DB2中有多个日期函数可以使用来获取年月。
其中最常用的是YEAR和MONTH函数。
YEAR函数用于获取指定日期的年份,MONTH函数用于获取指定日期的月份。
以下是使用日期函数获取年月的示例:sqlSELECT YEAR(current date) as year, MONTH(current date) as month FROM sysibm.sysdummy1;上述查询将返回当前日期的年份和月份。
2. 截取字符串:如果无法使用日期函数,还可以使用字符串函数来截取日期字符串的一部分以获取年月。
在DB2中,可以使用SUBSTR函数来截取字符串的指定部分。
以下是使用SUBSTR函数获取年月的示例:sqlSELECT SUBSTR(date_column, 1, 4) as year, SUBSTR(date_column, 6, 2) as monthFROM table_name;上述查询中,date_column是包含日期的列名,table_name是包含日期的表名。
SUBSTR函数的第一个参数是要截取的字符串,第二个参数是起始位置,第三个参数是要截取的长度。
在这种方法中,你需要确保日期列的格式是YYYY-MM-DD。
现在来总结一下,本文介绍了在DB2中获取年月的两种方法。
首先,我们可以使用日期函数如YEAR和MONTH来获取日期的年份和月份。
其次,我们可以使用字符串函数如SUBSTR来截取日期字符串的一部分。
这两种方法都非常简单直观,并且在需要获取年月的情况下非常有用。
希望本文对你有所帮助!。
db2 timestamp函数
db2 timestamp函数DB2是一种关系型数据库管理系统,它提供了许多内置函数来帮助开发人员更轻松地查询和处理数据。
其中之一就是timestamp函数,它提供了一种有效可靠的方法来管理时间戳数据。
timestamp函数可以用于将日期和时间的字符串转换为时间戳类型,并且还可以将时间戳类型转换为日期或时间的字符串。
下面分步骤来阐述如何使用timestamp函数。
第一步,使用timestamp函数将字符串转换为时间戳类型。
以下是使用timestamp函数的语法:timestamp(date_string time_string)其中,date_string是需要转换为时间戳的日期字符串,time_string是需要转换为时间戳的时间字符串。
例如,假设有一个日期字符串“2022-01-01”和一个时间字符串“01:01:01”,则可以使用以下代码将它们转换为时间戳类型:select timestamp('2022-01-01','01:01:01')这将返回一个表示“2022-01-01 01:01:01”的时间戳类型。
第二步,使用时间戳操作数据。
一旦将日期和时间转换为时间戳,就可以对它们进行各种操作。
以下是一些常见的时间戳操作:- 将时间戳转换为日期字符串:可以使用to_char函数来将时间戳转换为一个格式化的日期字符串,如下所示:select to_char(timestamp('2022-01-01','01:01:01'),'YYYY-MM-DD')这将返回一个格式为“2022-01-01”的日期字符串。
- 将时间戳转换为时间字符串:可以使用to_char函数来将时间戳转换为一个格式化的时间字符串,如下所示:select to_char(timestamp('2022-01-01','01:01:01'),'HH:MI:SS')这将返回一个格式为“01:01:01”的时间字符串。
DB2中的日期和时间
DB2中的日期和时间(v 1.0)版本说明目录DB2中的日期和时间 (1)版本说明 (2)目录 (3)1 基础知识 (4)2 日期函数 (6)3 修改日期格式 (8)4自定义日期/时间格式 (9)5 小结 (13)6 参考资料: (13)1 基础知识为了用SQL语句得到当前的日期,时间和时间戳,可以使用相应的DB2寄存器:db2 “SELECT current date FROM sysibm.sysdummy1”结果:1----------03/08/20071 record(s) selected.db2 “SELECT current time FROM sysibm.sysdummy1”db2 “SELECT current timestamp FROM sysibm.sysdummy1”sysibm.sysdummy1表是一个在内存中特殊的表,可以使用上面的语句得到DB2寄存器的值。
您也还可以用关键字VALUES来获取寄存器中的值。
例如,在DB2命令行处理器中,可以用下面的SQL语句获取同样的信息:VALUES current dateVALUES current timeVALUES current timestamp结果1--------------------------2007-03-08-11.32.57.0766971 record(s) selected.在下面的示例中,我将只提供函数或表达式,而不再重复 SELECT ... FROM sysibm.sysdummy1 或使用VALUES子句。
要使当前时间或当前时间戳调整到格林威治标准时间(GMT/CUT),可以把当前的时间或时间戳减去当前时区寄存器:current time - current timezonecurrent timestamp - current timezone结果:1--------------------------2007-03-08-03.36.41.1566021 record(s) selected.给定了日期、时间或时间戳,则使用适当的函数抽取出(如果适用的话)年、月、日、时、分、秒及微秒各部分:YEAR"(current timestamp)"MONTH"(current timestamp)"DAY"(current timestamp)"HOUR"(current timestamp)"MINUTE"(current timestamp)"SECOND"(current timestamp)"MICROSECOND"(current timestamp)"从时间戳单独抽取出日期和时间:date"(current timestamp)"time"(current timestamp)"还可以使用英语(因为没有更好的术语)来执行日期和时间计算:current date + 1 YEARcurrent date + 3 YEARS + 2 MONTHS + 15 DAYScurrent time + 5 HOURS - 3 MINUTES + 10 SECONDS要计算两个日期之间相差的天数,可以对日期作减法,例如:days"(current date)"-days"(date('1999-10-22'))返回值:2694而以下示例描述了如何获得微秒部分归零的当前时间戳记:CURRENT TIMESTAMP - MICROSECOND"(current timestamp)" MICROSECONDS返回值:2007-03-08-14.23.34.000000如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。
Db2基本数据类型
DB2的基本数据类型我们今天主要向大家讲述的是DB2数据类型,我们大家都知道DB2内置数据类型其一共可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。
还有一种叫做 DATALINK 的特殊数据类型。
DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。
数值型DB2数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。
所有数值都有符号和精度。
精度是指除符号以外的二进制或十进制的位数。
如果数字的值大于等于零,就认为符号为正。
小整型,SMALLINT:小整型是两个字节的整数,精度为 5 位。
小整型的范围从 -32,768 到 32,767。
大整型,INTEGER 或 INT:大整型是四个字节的整数,精度为 10 位。
大整型的范围从 -2,147,483,648 到2,147,483,647。
巨整型,BIGINT:巨整型是八个字节的整数,精度为 19 位。
巨整型的范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
小数型,DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s):小数型的值是一种压缩十进制数,它有一个隐含的小数点。
压缩十进制数将以二-十进制编码(binary-coded decimal,BCD)记数法的变体来存储。
小数点的位置取决于数字的精度(p)和小数位(s)。
小数位是指数字的小数部分的位数,它不可以是负数,也不能大于精度。
最大精度是 31 位。
小数型的范围从 -1031+1 到 1031-1。
单精度浮点数(Single-precision floating-point),REAL:单精度浮点数是实数的 32 位近似值。
Db2基本数据类型
DB2的基本数据类型我们今天主要向大家讲述的是DB2数据类型,我们大家都知道DB2内置数据类型其一共可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。
还有一种叫做 DATALINK 的特殊数据类型。
DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。
数值型DB2数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。
所有数值都有符号和精度。
精度是指除符号以外的二进制或十进制的位数。
如果数字的值大于等于零,就认为符号为正。
小整型,SMALLINT:小整型是两个字节的整数,精度为 5 位。
小整型的范围从 -32,768 到 32,767。
大整型,INTEGER 或 INT:大整型是四个字节的整数,精度为 10 位。
大整型的范围从 -2,147,483,648 到2,147,483,647。
巨整型,BIGINT:巨整型是八个字节的整数,精度为 19 位。
巨整型的范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
小数型,DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s):小数型的值是一种压缩十进制数,它有一个隐含的小数点。
压缩十进制数将以二-十进制编码(binary-coded decimal,BCD)记数法的变体来存储。
小数点的位置取决于数字的精度(p)和小数位(s)。
小数位是指数字的小数部分的位数,它不可以是负数,也不能大于精度。
最大精度是 31 位。
小数型的范围从 -1031+1 到 1031-1。
单精度浮点数(Single-precision floating-point),REAL:单精度浮点数是实数的 32 位近似值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
db2日期和时间常用汇总 1、db2可以通过SYSIBM.SYSDUMMY1、SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值。
SELECT
'HELLO DB2'
FROM SYSIBM.SYSDUMMY1;
--HELLO DB2
SELECT 'HELLO DB2' FROM SYSIBM.DUAL;--HELLO DB2
VALUES 'HELLO DB2';--HELLO DB2
2、CURRENT DATE获取当前日期;CURRENT TIME获取当前时间;CURRENT TIMESTAMP获取当前时间戳(含年、月、日、时、分、秒)。
VALUES CURRENT DATE--2012/5/25 0:00:00;
VALUES CURRENT TIME--20:48:53;
VALUES CURRENT TIMESTAMP--2012/5/25 20:49:12;
3、YEAR()获取年;MONTH()获取月;DAY()获取日;
HOUR()获取小时;MINUTE()获取分钟;SECOND()获取秒;
DATE()获取日期;TIME()获取时间;TIMESTAMP()获取时间戳。
以上函数参数可以是日期时间类型,也可以为日期时间格式的字符串。
VALUES YEAR(CURRENT TIMESTAMP);/*2012*/ VALUES YEAR('2012-05-25 21:18:12');/*2012*/
VALUES MONTH(CURRENT TIMESTAMP);/*5*/ VALUES MONTH('2012-05-25 21:18:12');/*5*/ VALUES DAY(CURRENT TIMESTAMP);/*25*/ VALUES DAY('2012-05-25 21:18:12');/*25*/ VALUES HOUR(CURRENT TIMESTAMP);/*21*/ VALUES HOUR('2012-05-25 21:18:12');/*21*/ VALUES MINUTE(CURRENT TIMESTAMP);/*18*/ VALUES MINUTE('2012-05-25
21:18:12');/*18*/
VALUES SECOND(CURRENT TIMESTAMP);/*12*/ VALUES SECOND('2012-05-25 21:18:12');/*12*/
VALUES DATE(CURRENT TIMESTAMP);/*2012/5/25 0:00:00*/ VALUES DATE('2012-05-25 21:18:12');/*2012/5/25 0:00:00*/ VALUES TIME(CURRENT TIMESTAMP);/*21:18:12*/ VALUES TIME('2012-05-25 21:18:12');/*21:18:12*/
VALUES TIMESTAMP(CURRENT TIMESTAMP);/*2012/5/25 21:18:12*/ VALUES TIMESTAMP('2012-05-25
21:18:12');/*2012/5/25 21:18:12*/
4、db2时间可以直接加减带单位的时间长度。
VALUES TIMESTAMP('2012-5-25 21:18:12')+1 YEAR;--2013/5/25 21:18:12
VALUES TIMESTAMP('2012-5-25 21:18:12')+1 MONTH;--2012/6/25 21:18:12
VALUES TIMESTAMP('2012-5-25 21:18:12')+1 DAY;--2012/5/26 21:18:12
VALUES TIMESTAMP('2012-5-25 21:18:12')+1 HOUR;--2012/5/25 22:18:12
VALUES TIMESTAMP('2012-5-25 21:18:12')+1 MINUTE;--2012/5/25 21:19:12
VALUES TIMESTAMP('2012-5-25 21:18:12')+1 SECOND;--2012/5/25 21:18:13
VALUES TIMESTAMP('2012-5-25 21:18:12')+1 YEAR+1 MONTH+1 DAY+1 HOUR+1 MINUTE +1 SECOND ;--2013/6/26 22:19:13
VALUES TIMESTAMP('2012-5-25 21:18:12')-1 YEAR-1 MONTH-1 DAY-1 HOUR-1 MINUTE -1 SECOND ;--2011/4/24 20:17:11
5、通过days()可以获取两个时间相差天数。
VALUES DAYS(CURRENT DATE)-DAYS(CURRENT DATE-1000 DAY);--1000
6、TO_CHAR()把时间转换成指定格式的字符串类型(db2较低版本不支持)。
“YYYY-MM-DD HH:MI:SS”十二小时制;“YYYY-MM-DD HH24:MI:SS”二十四小时制。
(“YYYY-MM-DD hh:mm:ss”不会报错,但是mm值取的是月的值。
)
SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD') FROM SYSIBM.DUAL;--2012-05-25
SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD HH:MI:SS') FROM SYSIBM.DUAL;--2012-05-25 09:18:12
SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD HH24:MI:SS') FROM SYSIBM.DUAL;--2012-05-25 21:18:12
(SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD HH24:MM:SS') FROM SYSIBM.DUAL;--2012-05-25 21:05:12)
7、DAYNAME()返回指定日期的星期名,该星期名是由首字符大写、其他字符小写组成的英文名。
values DAYNAME(current timestamp)--Friday(当天为星期五)
8、DAYOFWEEK()返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日。
values DAYOFWEEK(current timestamp);--6(当天为星期五)
9、DAYOFWEEK_ISO()返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一。
values DAYOFWEEK_ISO(current timestamp);--5(当前为星期五)
10、DAYOFYEAR()返回参数中一年中的第几天,用范围在 1-366 的整数值表示。
values DAYOFYEAR(DATE('2012-02-01'));--32
11、MONTHNAME()对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。
values MONTHNAME(CURRENT TIMESTAMP);--May(当前为五月)。