db2时间日期函数
介绍
这篇短文是为那些刚接触DB2 并想理解如何操作日期和时间的新手而写的。
使用过其它数据库的大部分人都会很惊喜地发现在DB2 中操作日期和时间是多么简单。
基础
要使用SQL 获得当前的日期、时间及时间戳记,请参考适当的DB2 寄存器:
sysibm.sysdummy1表是一个特殊的内存中的表,用它可以发现如上面演示的DB2 寄存器的值。
您也可以使用关键字VALUES 来对寄存器或表达式求值。
例如,在DB2 命令行处理器(Command Line Processor,CLP)上,以下SQL 语句揭示了类似信息:
在余下的示例中,我将只提供函数或表达式,而不再重复SELECT ... FROM sysibm.sysdummy1或使
用VALUES 子句。
要使当前时间或当前时间戳记调整到GMT/CUT,则把当前的时间或时间戳记减去当前时区寄存器:
给定了日期、时间或时间戳记,则使用适当的函数可以单独抽取出(如果适用的话)年、月、日、时、
分、秒及微秒各部分:
从时间戳记单独抽取出日期和时间也非常简单:
因为没有更好的术语,所以您还可以使用英语来执行日期和时间计算:
要计算两个日期之间的天数,您可以对日期作减法,如下所示:
而以下示例描述了如何获得微秒部分归零的当前时间戳记:
如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。
为此,只要使用CHAR()
函数:
要将字符串转换成日期或时间值,可以使用:
TIMESTAMP()、DATE() 和TIME() 函数接受更多种格式。
上面几种格式只是示例,我将把它作为一
个练习,让读者自己去发现其它格式。
日期函数
有时,您需要知道两个时间戳记之间的时差。
为此,DB2 提供了一个名为TIMESTAMPDIFF() 的内置函数。
但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有30 天。
以下示例描述了如
何得到两个日期的近似时差:
对于<n>,可以使用以下各值来替代,以指出结果的时间单位:
∙ 1 = 秒的小数部分
∙ 2 = 秒
∙ 4 = 分
∙8 = 时
∙16 = 天
∙32 = 周
∙64 = 月
∙128 = 季度
∙256 = 年
当日期很接近时使用timestampdiff() 比日期相差很大时精确。
如果需要进行更精确的计算,可以使用
以下方法来确定时差(按秒计):
为方便起见,还可以对上面的方法创建SQL 用户定义的函数:
如果需要确定给定年份是否是闰年,以下是一个很有用的SQL 函数,您可以创建它来确定给定年份的天
数:
最后,以下是一张用于日期操作的内置函数表。
它旨在帮助您快速确定可能满足您要求的函数,但未提供完整的参考。
有关这些函数的更多信息,请参考SQL 参考大全。
改变日期格式
在日期的表示方面,这也是我经常碰到的一个问题。
用于日期的缺省格式由数据库的地区代码决定,该代码在数据库创建的时候被指定。
例如,我在创建数据库时使用territory=US 来定义地区代码,则日期
的格式就会像下面的样子:
也就是说,日期的格式是MM/DD/YYYY. 如果想要改变这种格式,你可以通过绑定特定的DB2 工
具包来实现. 其他被支持的日期格式包括:
在Windows 环境下,要将缺省的日期和时间格式转化成ISO 格式(YYYY-MM-DD),执行下列操
作:
1.在命令行中,改变当前目录为sqllib\bnd。
例如:
在Windows 环境:c:\program files\IBM\sqllib\bnd
在UNIX 环境:/home/db2inst1/sqllib/bnd
2.从操作系统的命令行界面中用具有SYSADM 权限的用户连接到数据库:
(在你的实际环境中,用你的数据库名称和想使用的日期格式分别来替换DBNAME and ISO。
) 现在,你可以看到你的数据库已经使用ISO 作为日期格式了:
定制日期/时间格式
在上面的例子中,我们展示了如何将DB2 当前的日期格式转化成系统支持的特定格式。
但是,如果你想将当前日期格式转化成定制的格式(比如‘yyyymmdd’),那又该如何去做呢?按照我的经验,最好的
办法就是编写一个自己定制的格式化函数。
下面是这个UDF 的代码:
乍一看,函数的代码可能显得很复杂,但是在仔细研究之后,你会发现这段代码其实非常简单而且很优雅。
最开始,我们使用了一个公共表表达式(CTE)来将一个时间戳记(第一个输入参数)分别剥离为单独的时间元素。
然后,我们检查提供的定制格式(第二个输入参数)并将前面剥离出的元素按照该定制
格式的要求加以组合。
这个函数还非常灵活。
如果要增加另外一种模式,可以很容易地再添加一个WHEN 子句来处理。
在使用过程中,如果用户提供的格式不符合任何在WHEN 子句中定义的任何一种模式时,函数会返回一个
错误信息。
使用方法示例:。
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函数-v2
WEEK_ISO(expression) TO_CHAR(timestampexpression,,format-string) WEEK(expression)
MOD(expression,expression) TRANSLATE(stringexp,tostring,fromst ring) 实际中经常如下使用: translate(exp,'','0123456789') replace(source-string, pattern, replacement-string) dayofweek_iso(exp)
TRUNC(double sourceNum, int place)
1 1
简单转换:round(double a, int d) 注:trunc与round的区别是:trunc无四舍五入 substr(string A, length(string A)-len+1, int len) 无 无 无 无 无 无 无 无 无 无 无 无
sin(double a) MIDNIGHT_SECONDS
0 rpad(string str, int len, string pad) 0 0 0 0 repeat(string str, int n) 0 cast(… as <obj>) 0 rand(),rand(int seed) 0 0 radians(double a) 0 0 0 power(double a, double p) 0 0 0 0 nvl 0
0无 0无 0无 0无 0无 0无 0无 0 covar_samp(col1, col2) 0 cast(… as <obj>) cast(… as <obj>) + 0 from_unixtime 0 0 0 sustr 0 +cast(… as <obj>) 0 0 0 cast(… as <obj>) 0 TO_DATE(v_txdate,'YYYYMMDD') 0 date_add(string startdate, int days) 0 0 unix_timestamp(string date, string pattern) 0 0 tan(double a) 0 substring(string A, int start, int len) 0 0 var_pop(col) 0 0 0 0 0 0 0 0 0 0 sqrt(double a) space(int n)
DB2函数大全:类型转换函数、字符串函数等
DB2函数大全:类型转换函数、字符串函数等DB2 内置的函数真的是很多,要精通每个函数几乎是不可能的,所以本文并不打算介绍每个函数的具体用法,而是提供一个概览,让您了解每个函数的功能,这样,当你感觉你需要某些功能的函数时,再学习它们的具体用法也不迟。
DB2 内置函数大体分为以下几类:1.聚合函数2.类型转换函数3.数学函数4.字符串函数5.日期时间函数6.XML 函数7.分区函数8.安全函数9.其他下面我们就了解一下每类都有哪些函数,以及这些函数的功能。
一:聚合函数二:类型转换函数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.GENERATE_UNIQUE 生成唯一字符序列五:日期时间函数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.C(Julian 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 函数七:分区函数1.函数功能描述2.DATAPARTITIONNUM 返回数据分区中的序列号3.DBPARTITIONNUM 返回行的分区号4.HASHEDVALUE 返回行的 distribution map index (0 to 4095)八:安全函数1.函数功能描述2.SECLABEL 返回未命名的安全标签3.SECLABEL_BY_NAME 返回具体的安全标签4.SECLABEL_TO_CHAR 返回标签的所有元素九:其他1.函数功能描述2.COALESCE 将null转化为其他值3.VALUE 将null转化为其他值4.NULLIF 如果两个参数相等,则返回null,否则,返回第一个参数5.HEX 返回一个值的16进制表示6.LENGTH 返回一个值的长度7.TABLE_NAME 返回table名8.TABLE_SCHEMA 返回schema名9.TYPE_ID 返回数据类型表示10.TYPE_NAME 返回数据类型名11.TYPE_SCHEMA 返回schema名12.DEREF 返回参数类型的实例13.IDENTITY_VAL_LOCAL 返回最后分配给标识列的值14.REC2XML 返回XML标记格式的字符串,包含列名和列数据15.EVENT_MON_STATE 返回某事件监视器的操作状态16.RAISE_ERROR 抛出错误,可以指定sqlstate和error_message,有点像java的抛出异常。
db2时间转换函数
db2时间转换函数在DB2中,你可以使用多种函数来转换时间。
以下是一些常用的时间转换函数:1. CAST函数: 用于将一个数据类型转换为另一个数据类型。
```sqlSELECT CAST(column_name AS VARCHAR(10)) FROM table_name; ```2. CONVERT函数: 类似于CAST函数,用于将一个数据类型转换为另一个数据类型。
```sqlSELECT CONVERT(VARCHAR(10), column_name) FROM table_name; ```3. DATE格式化函数: 使用DATE()函数与格式字符串可以格式化日期。
SELECT DATE(column_name, 'YYYY-MM-DD') FROM table_name;```4. TIMESTAMP格式化函数: 使用TIMESTAMP()函数与格式字符串可以格式化日期和时间。
```sqlSELECT TIMESTAMP(column_name, 'YYYY-MM-DD HH:MI:SS') FROM table_name;```5. YEAR(), MONTH(), DAY(): 从日期中提取年份、月份和日期。
```sqlSELECT YEAR(column_name), MONTH(column_name),DAY(column_name) FROM table_name;```6. HOUR(), MINUTE(), SECOND(): 从时间戳中提取小时、分钟和秒。
SELECT HOUR(column_name), MINUTE(column_name),SECOND(column_name) FROM table_name;```7. ADD_MONTHS(): 在日期上添加或减去月份。
```sqlSELECT ADD_MONTHS(column_name, 3) FROM table_name; -- 在日期上加3个月```8. SUBTRACT_MONTHS(): 从日期上减去月份。
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时间函数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 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字符串的有关函数
一、字符转换函数1、ASCII()返回字符表达式最左端字符的ASCII 码值。
在ASCII()函数中,纯数字的字符串可不用…‟括起来,但含其它字符的字符串必须用…‟括起来使用,否则会出错。
2、CHAR()将ASCII 码转换为字符。
如果没有输入0 ~ 255 之间的ASCII 码值,CHAR()返回NULL 。
3、LOWER()和UPPER()LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
4、STR()把数值型数据转换为字符型数据。
STR (<float_expression>[,length[,<decimal>]])length 指定返回的字符串的长度,decimal 指定返回的小数位数。
如果没有指定长度,缺省的length 值为10,decimal 缺省值为0。
当length 或者decimal 为负值时,返回NULL;当length 小于小数点左边(包括符号位)的位数时,返回length 个*;先服从length ,再取decimal ;当返回的字符串位数小于length ,左边补足空格。
二、去空格函数1、LTRIM() 把字符串头部的空格去掉。
2、RTRIM() 把字符串尾部的空格去掉。
三、取子串函数1、left()LEFT (<character_expression>,<integer_expression>)返回character_expression 左起integer_expression 个字符。
2、RIGHT()RIGHT (<character_expression>,<integer_expression>)返回character_expression 右起integer_expression 个字符。
3、SUBSTRING()SUBSTRING (<expression>,<starting_ position>,length)返回从字符串左边第starting_ position 个字符起length个字符的部分。
DB2函数大全(整理)
DB2函数大全函数名函数解释函数举例AVG()返回一组数值的平均值.SELECTAVG(SALARY)FROMBSEMPMS; CORR(),CORRELATION()返回一对数值的关系系数. SELECTCORRELATION(SALARY,BONUS)FROMBSEMPMS;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()返回比参数大或等于参数的最小的整数值. SELECTCEILING(3.56)FROMBSEMPMS;SELECTCEIL(4.67)FROMBSEMPMS; 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()返回字符串的大写.SELECTUCASE(EMP_NAM)FROMBSEMPMS;SELECTUPPER(EMP_NO)FROMBSEMPMS;TRUNCATE() OR TRUNC()从表达式小数点右边的位置开始截断并返回该数值. SELECTTRUNCATE(345.6789,2)FROMBSEMPMS;TIME()返回一个数值中的时间.SELECTTIME('2001-03-19.12.30.123456')FROMBSEMPMS;SUBSTR(EXP1,EXP2)返回EXP1串自EXP2处开始的子串.SELECT SUBSTR('CDNJFDJFJD',5)FROM BSEMPMS;SELECTSUBSTR('CDNJFDJFJD',5,2)FROM BSEMPMS;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中所有的EXP2 SELECTCHAR(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,否则为EXP1 NODENUMBER()返回行的分区号.SELECTNODENUMBER(EMP_NO)FROMBSEMPMS;MONTH()返回一个数值的月部分.SELECTMONTH('2003/10/20')FROMBSEMPMS;MOD(EXP1,EXP2)返回EXP1除以EXP2的余数.SELECTMOD(20,8)FROMBSEMPMS;MINUTE()返回一个数值的分钟部分.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;因为没有更好的术语,所以您还可以使用英语来执行日期和时间计算: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如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。
DB中操作日期和时间
DB 中操作日期和时间SQL获得当前的日期和时间与DB2 中操作日期和时间默认分类2007-12-17 11:51:24要使用SQL 获得当前的日期、时间及时间戳记,请参考适当的DB2 寄存器:SELECT current date FROM sysibm.sysdummy1SELECT current time FROM sysibm.sysdummy1SELECT current timestamp FROM sysibm.sysdummy1sysibm.sysdummy1 表是一个特殊的内存中的表,用它可以发现如上面演示的DB2 寄存器的值。
您也可以使用关键字VALUES 来对寄存器或表达式求值。
例如,在DB2 命令行处理器(Command Line Processor,CLP)上,以下SQL 语句揭示了类似信息:VALUES current dateVALUES current timeVALUES current timestamp这篇短文是为那些刚接触DB2 并想理解如何操作日期和时间的新手而写的。
使用过其它数据库的大部分人都会很惊喜地发现在DB2 中操作日期和时间是多么简单。
要使用SQL 获得当前的日期、时间及时间戳记,请参考适当的DB2 寄存器:SELECT current date FROM sysibm.sysdummy1SELECT current time FROM sysibm.sysdummy1SELECT current timestamp FROM sysibm.sysdummy1sysibm.sysdummy1 表是一个特殊的内存中的表,用它可以发现如上面演示的DB2 寄存器的值。
您也可以使用关键字VALUES 来对寄存器或表达式求值。
例如,在DB2 命令行处理器(Command Line Processor,CLP)上,以下SQL 语句揭示了类似信息:VALUES current dateVALUES current timeVALUES current timestamp在余下的示例中,我将只提供函数或表达式,而不再重复SELECT ... FROM sysibm.sysdummy1 或使用VALUES 子句。
