本文以kingbase 为解释主体
一. 函数
1.无 sysdate(),可以使用 current_timestamp() 替换
SELECT CURRENT_TIMESTAMP()
2.计算前几天
不能 执行 now() + interval -1 day,可以使用 date_sub( n, unit) 替换; 或者 改为 now- interval '1' day
SELECT now(), now()- INTERVAL '1' day as yesteday
-- 前三天
SELECT DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL '3' DAY);
3.STR_TO_DATE不存在, 可以用to_date( n , format)替换
SELECT to_date('1970-01-01 08:00:00', 'yyyy-MM-dd hh24:mi:ss')
4. SYS_GUID 替换 UUID
SELECT SYS_GUID()
OUTPUT: 731A8C7CECC14076ACBFC10225F3FEA9
5.IFNULL( EXP, '') 若exp是数值类型如int ,且EXP不为空, 则 返回的类型是int ,想要以字符串的形式返回,需做强制类型转换
CAST( IFNULL (EXP, '')) 返回的是字符串
6. 无 year(date), 有 year(text),
-- 获取当前年份
SELECT EXTRACT(YEAR FROM now()) AS year
二. 序列
MySQL 8 中无序列类型,需自定定义, kingbase中有序列。以下是定义和相关函数
CREATE TEMP SEQUENCE testseq;
SELECT nextval('testseq');
SELECT currval('testseq');
SELECT nextval('testseq');
SELECT currval('testseq');