课题_DB2日期和时间常用汇总

合集下载

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时间函数

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日期时间格式

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常用命令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中进行时间计算和处理,从而更好地管理和分析数据。

下面是一些常用的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 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 寄存器的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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(当前为五月)。

相关文档
最新文档