国产人大金仓数据库V7存在一些各种各样的问题,新项目决定采用金仓的V8版本,现将一些函数及语法变动总结如下:
一、函数运用方面
1.获取当前时间
GETDATE() ---> NOW()
2.日期格式化
DATE_FORMAT(NOW(),'%Y-%m-%d') ---> TO_CHAR(NOW(),'YYYY-MM-DD')
3.截取年份
DATEPART('yyyy',NOW()) ---> TO_NUMBER(to_char(NOW(),'yyyy'))
4.获取字符位置
CHARINDEX('.',[COLUMN]) ---> INSTR([COLUMN],'.')
5.获取前一天、后一天
DATEADD(DAY, -1, NOW())) ---> NOW()-1
6.字符拼接函数
wmsys.wm_concat ---> wm_concat
二、系统保留关键词
查询sql语句是,如果遇到字段名称为保留字,查询结果字段名称会默认变为大写
解决办法,查询时保留关键词套上双引号""
例:Name、Encoding、Type、Year、Operator、Object、Time、Text列举不全之处欢迎评论区补充!
三、数据库机制
V8中不在有''空字符串一说,均默认为NULL
1.在V7中我们经常会在查询时对一些字段采用 ISNULL([COLUMN],'') AS XXX 方式来查询,这样可以避免在对结果集使用时出现空指针错误,但在V8中,需要在单引号中间加上空格,才可以
ISNULL([COLUMN],'') AS XXX ---> ISNULL([COLUMN],' ') AS XXX
特别注意:修改后,可能会影响到后续逻辑的判断,以前是判断空串,现在是判断空格!!!
2.字段判断
[COLUMN] != '' ---> [COLUMN] IS NOT NULL
以上内容为项目实践过程中的一些经验总结,不全之处尽请谅解!