DB2数据库操作日常记录

文章目录

    • IBIM的数据库
      • 1、DB2 修改列属性 设置默认值
      • 2.更改默认值
      • 系统默认值:
      • 3.更改是否允许空值
      • 4.sum
      • 5.decimal
      • 6.版本查看
      • 7.CASE WHEN
      • 8.格式化字符日期格式
      • 9字符串转DB2日期格式
      • 10.时间格式只保留日期
      • 11. substr的不同
      • 12. 拼接两个字段并添加中间字符 || 运算符
      • 13.字符串日期加减 (这个月的某一天,上个月的一天等等)
  • 参考文章
  • 参考文章

IBIM的数据库

1、DB2 修改列属性 设置默认值

1.更改类型(设置为主键的列不能更改类型)

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DATA TYPE VARCHAR(32);  

2.更改默认值

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DEFAULT 'ABC';  

系统默认值:

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DEFAULT; --设置默认值  
ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" DROP DEFAULT; --删除默认

3.更改是否允许空值

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET NOT NULL;  
ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" DROP NOT NULL;  

更改列类型,是否允许空值后,需要执行REORG TABLE “TABLENAME”;
更改默认值后,通常需要执行

UPDATE "SCHEMA"."TABLENAME" SET "COL" = DEFAULT WHERE "COL" IS NULL; 

4.sum

SELECT MANUFACTORY_ID as "manuFactoryId",
       DEVICE_ID       as "deviceId",
       DEVICE_NAME     as "deviceName",
       SUM(QTYD_01)    as "qtyd01",
       SUM(QTYD_02)    as "qtyd02",

  group by MANUFACTORY_ID,DEVICE_ID,DEVICE_NAME;

5.decimal

官网

    decimal(SUM(QTYD_01),2)    as  "qtyd01",

6.版本查看

-- 查看版本
 SELECT service_level, fixpack_num FROM TABLE(sysproc.env_get_inst_info()) as INSTANCEINFO

7.CASE WHEN

CASE WHEN QTYD_01  = 0 THEN 1 END


8.格式化字符日期格式

-- START_DATE = YYYYMMDDHH24
to_date(START_DATE, 'YYYY-MM-DD HH24')

9字符串转DB2日期格式

  TIMESTAMP_FORMAT(START_DATE, 'YYYYMMDDHH24')
  -- 日期格式可以直接加减日期值
START_DATE + 1 DAY - HOUR(START_DATE) HOURS

10.时间格式只保留日期

 DATE (START_DATE) as START_DATE,  
 --   2023-11-01 00:00:00.000000 转为2023-11-01

11. substr的不同

substr是没有为0的下标的,是从1开始的
DB2数据库操作日常记录_第1张图片

12. 拼接两个字段并添加中间字符 || 运算符

也可以添加

    PACKING_TYPE || '_' ||PACKING_SPECIFICATION as "packageType"
SELECT CONCAT(field1, ' ', field2) as combinedField
FROM yourTable;

13.字符串日期加减 (这个月的某一天,上个月的一天等等)

 -- 上个月最后一天
SELECT  TO_CHAR(LAST_DAY(TIMESTAMP_FORMAT('202401','YYYYMM') - 1 MONTHS),'yyyyMMdd') as a FROM    
-- 上个月第一天
SELECT  TO_CHAR(LAST_DAY(TIMESTAMP_FORMAT('202401','YYYYMM') - 2 MONTHS)+1 DAY ,'yyyyMMdd') as a FROM   
-- 这个月第一天
SELECT  TO_CHAR(LAST_DAY(TIMESTAMP_FORMAT('202401','YYYYMM') - 1 MONTHS)+1 DAY ,'yyyyMMdd') as a FROM  
-- 这个月最后一天
SELECT  TO_CHAR(LAST_DAY(TIMESTAMP_FORMAT('202401','YYYYMM'))-1 DAY ,'yyyyMMdd') as a FROM

DB2数据库操作日常记录_第2张图片

参考文章

个人笔记,不同意见,望有交流
直接可以点击跳转连接

作者: RyanDYJ

参考文章

个人笔记,不同意见,望有交流
直接可以点击跳转连接

作者

你可能感兴趣的:(数据库,DB2,日常)