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(当前为五月)

12、WEEK()返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始。(参数可以为日期格式或者日期格式的字符串)

VALUES WEEK('2012-05-25')--21

13、TIMESTAMPDIFF(n,CHAR(TIMESTAMP('2012-05-25 10:23:24')-TIMESTAMP('2012-05-25 10:20:24')))根据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。(整除部分,不会四舍五入)

   n=2:秒 ; n=4 :分; n=8:时;

   n=16 :天; n=32 :周;n=64:月;

   n=128 :季度; n=256:年;

VALUES TIMESTAMPDIFF(2,CHAR(TIMESTAMP('2012-05-25 10:23:24')-TIMESTAMP('2012-05-25 10:20:24')));--180秒
VALUES TIMESTAMPDIFF(4,CHAR(TIMESTAMP('2012-05-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--123分钟
VALUES TIMESTAMPDIFF(8,CHAR(TIMESTAMP('2012-05-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--2小时
VALUES TIMESTAMPDIFF(16,CHAR(TIMESTAMP('2012-07-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--60天
VALUES TIMESTAMPDIFF(32,CHAR(TIMESTAMP('2012-07-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--8周
VALUES TIMESTAMPDIFF(64,CHAR(TIMESTAMP('2012-07-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--2月
VALUES TIMESTAMPDIFF(128,CHAR(TIMESTAMP('2012-08-25 10:20:22')-TIMESTAMP('2012-05-25 10:20:22')));--1季度
VALUES TIMESTAMPDIFF(256,CHAR(TIMESTAMP('2013-05-25 10:20:22')-TIMESTAMP('2012-05-25 10:20:22')));--1年

14、时期的格式。ISO,使用国际标准组织(ISO)制订的日期和时间格式;USA,使用美国日期和时间的 IBM 标准格式。

values char(current date,iso)--2012-05-25
values char(current date,usa)--05/25/2012
values char(current time,iso)--23.21.32
 
 
 
 
  
  
可以使用db2move ======================================================================== db2导入导出单表数据 db2备份恢复 生成DDL db2look –d dbname –e –o db.sql –i username –w password 重新创建表: db2 -tf db.sql 单表 导出db2move web export -tn yc_news -u db2user -p psw (db2move cqycnw export -tn magazinecolumn -u db2user -p psw) 导入db2move web import -u db2user -p psw db2cmd 首先创建数据库db2 create database databasename db2 backup database databasename db2 RESTORE DATABASE databasename 首先进入dos 然后输入db2cmd 1.导出到 一个文件获得sql语句 db2look -d cqyancao -e -o db.sql -i db2user -w psw 数据库名 要出文件名 用户名 密码 示例: db2look -d DEPARTMENT -u walid -e -o db2look.sql -- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句 -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -z myscm1 -e -o db2look.sql -- 这将为模式名为 MYSCM1 的所有表生成 DDL 语句 -- 还将生成 $USER 创建的所有联合对象的 DDL。 -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -u walid -m -o db2look.sql -- 这将生成 UPDATE 语句以捕获关于用户 WALID 创建的表/别名的统计信息 -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -u walid -e -wrapper W1 -o db2look.sql -- 这将生成由用户 WALID 创建的所有表的 DDL 语句 -- 还将生成适用于包装器 W1 的用户 WALID 所创建所有联合对象的 DDL -- db2look 输出被发送到名为 db2look.sql 的文件中 示例: db2look -d DEPARTMENT -u walid -e -server S1 -o db2look.sql -- 这将生成由用户 WALID 创建的所有表的 DDL 语句 -- 还将生成适用于服务器 S1 的用户 WALID 所创建所有联合对象的 DDL -- db2look 输出被发送到名为 db2look.sql 的文件中 2.使用move命令导出数据库 从另一数据库中导出初始化数据,首先进入导出的目录,如:D:/all_back/20050905/db,命令为:db2move dbname export –u username –p password。注:dbname 为原数据库名,username为用户名 password为密码。 恢复命令D:/all_back/20050906/db> db2move dbname import -u username -p password 韩晓伟-高阳 2014/5/5 18:14:59 db2move 命令 db2move <database-name> <action> [<option> < value>]  首先,您必须指定数据库名(想要移动的表所在的数据库)和要执行的操作(export 和 import 或 load)。然后指定一个选项来定义操作的范围。例如,可以将一个操作限制在特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名 (-sn)范围内。指定表、表空间或表的创建者的一个子集只对 export   操作有效。如果指定多个值,就必须使用逗号将其分隔开;在值列表项之间不允许有空格。可以指定的项最多为 10 个。 Export同时会导出建表命令! 另外,也可以指定 -tf 选项,此时要使用一个文件名作为参数,其中列出了要导出的表名;在该文件中,每行只能列出一个完整的表名。您还可以指定以下内容: -io import-option 指定 DB2 的 import 工具可以运行的一种模式。有效的选项有: CREATE、 INSERT、 INSERT_UPDATE、 REPLACE 和 REPLACE_CREATE。缺省值为 REPLACE_CREATE。有关这些模式的更多内容,请参阅 DB2 的产品文档,可以从 DB2 技术支持获得这些文档。 -lo load-option 指定 DB2 的 load 工具可以运行的一种模式。有效的选项有:INSERT 和 REPLACE。缺省值为 INSERT。 有关这些模式的更多内容,请参阅 DB2 的产品文档,可以从 DB2 技术支持获得这些文档。 -l lobpaths 指定要创建或查找的 LOB 文件的位置。必须指定一个或多个绝对路径名。如果指定了多个绝对路径,就必须使用逗号将其分隔开;值之间不允许有空格。缺省值是当前目录。 -u userid 指定一个用户 ID,该工具可以使用这个用户 ID 登录到远程系统上。 -p password 指定对该用户进行认证的密码;该工具需要使用一个有效的用户 ID 和密码登录到远程系统上。 db2move是DB2数据转移命令,用于不同操作系统之间(如linux和windows)的数据转移. 可以先用db2move export将数据导出,然后在另一个DB2里用db2move import或db2move load导入数据. 导出方法: 建立一个空文件夹,进入该文件夹使用 db2move Mydatabase export 导出数据. 导入方法: 进入导出的文件夹,输入命令db2move Newdb load  实际操作中,使用load的时候可能会发生破坏表完整性约束的情况,需要执行set integrity for <tablename>  immediate checked消除表check pending的状态。 不过有些不理想的地方,db2move时系统虽然会自动建表,但是也仅限于表,表上的视图和索引还需要自行创建)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值