泪伤荡的编程指南 泪伤荡的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
  • 基础篇

    • 数据库基础知识小结
    • NoSQL基础知识小结
    • 字符集详解
  • Mysql

    • MySQL基础小结
    • 索引篇
    • 思维导图
    • 数据库优化
    • 临时表
    • 实战篇

      • 日常小记
      • JOIN 解析
      • 执行计划解析
      • 内置函数小记
      • JSON字段处理
      • 时间字段的处理
      • 一文教你如何删除重复记录
      • exists语法解析
    • 读高性能MySQL笔记

      • MySQL架构
  • 达梦DM

    • DM基础入门
    • DM数据类型
    • DM_SQL语言支持的表达式
      • 字符串表达式
      • 时间值表达式
      • 运算符的优先级
    • DM表结构修改
  • Redis

    • Redis总结
    • Redis小记
  • 数据库
  • 达梦DM
泪伤荡
2024-09-10
目录

DM_SQL语言支持的表达式

# DM_SQL 语言支持的表达式

官方文档直达:[1.5 DM_SQL 语言支持的表达式 | 达梦技术文档 (dameng.com)](https://eco.dameng.com/document/dm/zh-cn/pm/dm_sql-introduction.html#1.5 DM_SQL 语言支持的表达式)

# 字符串表达式

连接 ||

语法:STR1 || STR2
1

(STR1 代表字符串 1,STR2 代表字符串 2)

功能:

  • 连接操作符对两个运算数进行运算,其中每一个都是对属于同一字符集的字符串的求值。
  • 它以给定的顺序将字符串连接在一起,并返回一个字符串。
  • 其长度等于两个运算数长度之和。
  • 如果两个运算数中有一个是 NULL,则 NULL 等价为空串。

例如:

select '武汉' || ADDRESS1 from PERSON.ADDRESS WHERE ADDRESSID=3;
1

查询结果为:武汉青山区青翠苑 1 号

# 时间值表达式

  • 时间值表达式的结果为时间值类型,包括 日期(DATE)类型,时间(TIME)类型 和 时间戳(TIMESTAMP)间隔类型。
  • DM SQL 不是对于任何的日期时间和间隔运算数的组合都可以计算。如果任何一个运算数是 NULL,运算结果也是 NULL。

下面列出了有效的可能性和结果的数据类型。

1、日期 + 间隔,日期-间隔和间隔 + 日期,得到日期

日期表达式的计算是根据有效格里高利历日期的规则。如果结果是一个无效的日期,表达式将出错。

参与运算的间隔类型只能是:

  1. INTERVAL YEAR、
  2. INTERVAL MONTH、
  3. INTERVAL YEAR TO MONTH、
  4. INTERVAL DAY。

如果间隔运算数是 年-月间隔,则没有从运算数的 DAY 字段的进位。

例如:

select PUBLISHTIME + INTERVAL '1' YEAR, PUBLISHTIME - INTERVAL '1' YEAR
from PRODUCTION.PRODUCT
where PRODUCTID=1;
1
2
3

查询结果为:2006-04-01 2004-04-01

2、时间 + 间隔,时间-间隔和间隔 + 时间,得到时间

时间表达式的计算是根据有效格里高利历日期的规则。如果结果是一个无效的时间,表达式将出错。

参与运算的间隔类型只能是:

  1. INTERVAL DAY、
  2. INTERVAL HOUR、
  3. INTERVAL MINUTE、
  4. INTERVAL SECOND、I
  5. NTERVAL DAY TO HOUR、
  6. INTERVAL DAY TO MINUTE、
  7. INTERVAL DAY TO SECOND、
  8. INTERVAL HOUR TO MINUTE、
  9. INTERVAL HOUR TO SECOND、
  10. INTERVAL MINUTE TO SECOND。

例如:

对时间值进行 +、- 小时间隔运算。

SELECT TIME '19:00:00' + INTERVAL '9' HOUR, TIME '19:00:00' - INTERVAL '9' HOUR;
1

查询结果为:04:00:00 10:00:00

3、时间戳记 + 间隔,时间戳记-间隔和间隔 + 时间戳记,得到时间戳记

时间戳记表达式的计算是根据有效格里高利历日期的规则。如果结果是一个无效的时间戳记,表达式将出错。

参与运算的间隔类型只能是:

  1. INTERVAL YEAR、
  2. INTERVAL MONTH、
  3. INTERVAL YEAR TO MONTH、
  4. INTERVAL DAY、
  5. INTERVAL HOUR、
  6. INTERVAL MINUTE、
  7. INTERVAL SECOND、
  8. INTERVAL DAY TO HOUR、
  9. INTERVAL DAY TO MINUTE、
  10. INTERVAL DAY TO SECOND、
  11. INTERVAL HOUR TO MINUTE、
  12. INTERVAL HOUR TO SECOND、
  13. INTERVAL MINUTE TO SECOND。

与时间的计算不同,当结果的小时值大于等于 24 时,结果进位到天。

例如:

SELECT TIMESTAMP'2007-07-15 19:00:00'+INTERVAL'9'HOUR, TIMESTAMP'2007-07-15 19:00:00'-INTERVAL'9'HOUR;
1

查询结果为:2007-07-16 04:00:00 2007-07-15 10:00:00

注:在含有 SECOND 值的运算数之间的一个运算的结果具有等于运算数的小数秒精度的小数秒精度。

4、日期 + 数值,日期-数值和数值 + 日期,得到日期

日期与数值的运算,等价于 日期与一个 INTERVAL '数值' DAY 的时间间隔的运算。

例 1 未设置 + 或-的数值时返回操作发生的日期

# 假设该查询操作发生在2011年9月29日 
SELECT CURDATE();
1
2

查询结果为:2011-09-29

例 2 返回 当前日期 + 数值后 的结果

SELECT CURDATE() + 2;
1

查询结果为:2011-10-01

例 3 返回 当前日期 - 数值 的结果

SELECT CURDATE() - 100;
1

查询结果为:2011-06-21

# 运算符的优先级

当一个复杂的表达式有多个运算符时,运算符优先性决定执行运算的先后次序。

运算符有下面这些优先等级(从高到低排列)。在较低等级的运算符之前先对较高等级的运算符进行求值。

( )
+(一元正)、-(一元负)、~(一元按位非)
*(乘)、/(除)、%(取余数)
+(加)、-(减)
|| (串联)
<<(左移)、>>(右移)
&(按位与)
^(按位异)
|(按位或)
1
2
3
4
5
6
7
8
9
上次更新: 2024/10/26 02:01:17
DM数据类型
DM表结构修改

← DM数据类型 DM表结构修改→

Theme by Vdoing | Copyright © 2024-2025 泪伤荡 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式