达梦 dameng 数据库

select dbms_metadata.get_ddl (‘TABLE’,’表名’,’模式名’) FROM DUAL;  结果就是DDL

分页可以用 limit 0,10

对null替换为你想要的值用  SELECT ifnull(null,’2322′)  或  SELECT nvl(null,’2322′)

达梦自带的管理工具, 查看表结构+注释

达梦 dameng 数据库

达梦 dameng 数据库

达梦数据库 varchar varchar2 都是可以用的

char(2) 是定长字符串, 存1会用空格补1位

DATE(年月日)    DATETIME(年月日时分秒, 可以设置精度为 0, 这样就没有毫秒值了)   

char tinyint

DELETE_MARK 字段定义为 char(1)  用 is null 可以查询到,  用 !=’1’却查不到  踩坑, 解决方案如下 SELECT * FROM user where  id =1 and (DELETE_MARK is null or DELETE_MARK=0);  最好设计表时给删除字段设置默认值0

相当于写  SELECT 1 where null != ‘1’; 条件是false 查不出结果

CASE WHEN DEADLINE_DATE is null THEN '' when CURDATE() > DEADLINE_DATE then '是' ELSE '否' END AS flag,



-- 日期格式化 如下都可以
SELECT DATE_FORMAT(GETDATE(), '%Y-%m-%d %H:%i:%s');  推荐用这个, 和mysql的date_format一样

%Y 表示年份,四位数,例如2000,2001,…等。 
%m 具有前导零的月份名称,例如:00,01,02,… 12 
%d 如果是1个数字(小于10),那么一个月之中的第几天表示为加前导加0, 如:00, 01,02, …31 
%H 24小时格式的小时,前导加0,例如:00,01..23 
%h 小时,12小时格式,带前导零,例如:01,02 … 12
%i:两位数字的分钟数
%s:两位数字的秒数

TO_CHAR是Oracle标准的格式化日期的
SELECT TO_CHAR(GETDATE(), 'YYYY-MM-DD HH24:MI:SS') AS current_datetime FROM dual;


关于数据库时间是 年月日时分秒,  用startDate endDate范围查询传入的是 年月日, 你可以将数据库的格式化为 年月日, 这样用 >=  <=就可以了
and DATE_FORMAT(TSCM.NOTICE_DATE, '%Y-%m-%d') <![CDATA[ #{noticeDateEnd}


-- 2023-12-11
SELECT CURDATE(); 或  CURRENT_DATE()

-- 2023-12-11 09:22:24
SELECT SYSDATE();

-- 2023-12-11 11:09:53.136527
SELECT GETDATE();

-- 当前日期+1 -1天
SELECT DATEADD(DAY, -1, '2000-01-12') FROM DUAL;
SELECT DATEADD(DAY, 1, CURDATE()) FROM DUAL;

-- date类型/timestamp类型 时间字段 直接 >= CURDATE() 或'201-10-21' 都是ok的
SELECT * from test where birthdate >= CURDATE();
SELECT * from test where birthdate1 >= '201-10-21';


SELECT TO_CHAR(ADD_MONTHS(CURRENT_DATE, -0), 'YYYY-MM') AS last_month FROM dual
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(CURRENT_DATE, -1), 'YYYY-MM') AS last_month FROM dual
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(CURRENT_DATE, -2), 'YYYY-MM') AS last_month FROM dual

在DM数据库中,主键自增有两种方法实现,一种是自增列AUTO_INCREMENT,另一种是通过类似oracle的序列实现自增

在DM中添加注释可以用注释语句 – “COMMENT ON  IS ”。用户可以对于自己拥有的模式下的对象创建注释,可以针对整张表或视图做注释,也可以对于各列进行注释。

带主键的建表语句   推荐写法 字段定义 和 注释分开写  注意时间的精度是0
DROP TABLE IF EXISTS STUDENT;
CREATE TABLE "STUDENT"(
"ID" BIGINT AUTO_INCREMENT NOT NULL,   --BIGINT(19)这么写会报错,达梦默认就是19
"NAME" VARCHAR(20),
"UPDATED_DATE" DATETIME(0),
"BIRTHDATE" DATE,
NOT CLUSTER PRIMARY KEY("ID")) AUTO_INCREMENT = 1;

COMMENT ON TABLE "STUDENT" IS '学生表';
COMMENT ON COLUMN "STUDENT"."ID" IS '主键';
COMMENT ON COLUMN "STUDENT"."NAME" IS '姓名';



DM8表注释的正确写法,直接在建表语句后面加上COMMENT的写法在DM中不被支持。表名的注释得单独写一个
CREATE TABLE STUDENT (
    ID bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
    NAME VARCHAR(20) COMMENT '姓名',
    PRIMARY KEY (id)
);
COMMENT ON TABLE STUDENT IS '学生表';

在达梦数据库中,”ID” BIGINT IDENTITY(1, 1) 是一个字段定义。

  • “ID” 是该字段的名称。
  • BIGINT 是该字段的数据类型,表示大整数类型。
  • IDENTITY(1, 1) 是该字段的标识属性,用于设置自增起始值和步长。

具体来说,IDENTITY(1, 1) 表示从1开始自增,每次增加1。这意味着当你插入一条新的记录时,ID字段会自动被赋予一个递增的值。

例如,如果你插入了两条记录,它们的ID字段将分别为1和2。

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/7b605c1281.html