首页 > 数据库 >达梦数据库-日期类型常用函数汇总

达梦数据库-日期类型常用函数汇总

时间:2022-10-04 19:25:50浏览次数:54  
标签:01 数据库 汇总 查询 DATE 日期 SELECT date 达梦

日期时间函数的参数至少有一个是日期时间类型(TIME,DATE,TIMESTAMP),返回值一般为日期时间类型和数值类型。由于 DM 支持儒略历,并考虑了历史上从儒略历转换至格里高利日期时的异常,不计算’1582-10-05’到’1582-10-14’之间的 10 天,因此日期时间函数也不计算这 10 天。

函数 ADD_DAYS

语法:ADD_DAYS( date, n)


功能:返回日期 date 加上相应天数 n 后的日期值。n 可以是任意整数,date 是日期
类型(DATE)或时间戳类型(TIMESTAMP),返回值为日期类型(DATE)。
例:

SELECT ADD_DAYS( DATE ‘2000-01-12’,1);
查询结果为:2000-01-13
函数 ADD_MONTHS
语法:ADD_MONTHS(date,n)
功能:返回日期 date 加上 n 个月的日期时间值。n 可以是任意整数,date 是日期类型(DATE)或时间戳类型(TIMESTAMP),返回类型固定为日期类型(DATE)。如果相加之后的结果日期中月份所包含的天数比 date 日期中的日分量要少,那么结果日期的该月最后一天被返回。
例:

SELECT ADD_MONTHS(DATE ‘2000-01-31’,1);
查询结果为:2000-02-29
SELECT ADD_MONTHS(TIMESTAMP ‘2000-01-31 20:00:00’,1);
查询结果为:2000-02-29
函数 ADD_WEEKS
语法:ADD_WEEKS( date, n)
功能:返回日期 date 加上相应星期数 n 后的日期值。n 可以是任意整数,date 是日
期类型(DATE)或时间戳类型(TIMESTAMP),返回类型固定为日期类型(DATE)。
例:

SELECT ADD_WEEKS( DATE ‘2000-01-12’,1);
查询结果为: 2000-01-19
函数 CURDATE
语法:CURDATE()
功能:返回当前日期值,结果类型为 DATE。

SELECT CURDATE();
查询结果为:执行此查询当天日期,如 2020-02-27
函数 CURTIME
语法:CURTIME(n)
功能:返回当前时间值,结果类型为 TIME WITH TIME ZONE。
参数:n:指定毫秒的精度。取值范围 0-6,默认为 6。
例:

SELECT CURTIME();
查询结果为:执行此查询的当前时间,如 14:53:54.859000 +8:00
函数 DATEDIFF/BIGDATEDIFF
语法:DATEDIFF(datepart,date1,date2)
功能:返回跨两个指定日期的日期和时间边界数。datepart 取值见表 8.3.1。
注:当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒 MILLISECOND,最大
数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。若想提高可以
表示的范围,可以使用 BIGDATEDIFF,其使用方法与 DATEDIFF 函数一致,只是可以表
示更广范围的秒和毫秒。
例:

SELECT DATEDIFF(QQ, ‘2003-06-01’, DATE ‘2002-01-01’);
查询结果为:-5
SELECT DATEDIFF(MONTH, ‘2001-06-01’, DATE ‘2002-01-01’);
查询结果为:7
SELECT DATEDIFF(WK, DATE ‘2003-02-07’,DATE ‘2003-02-14’);
查询结果为:1
SELECT DATEDIFF(MS,‘2003-02-14 12:10:10.000’,‘2003-02-14 12:09:09.300’);
查询结果为:-60700
函数 DATEPART/DATE_PART
语法:DATEPART(datepart,date)
功能:返回代表日期 date 的 指 定 部 分 的 整 数 。 datepart 取 值 请 参 考
DATEDIFF(datepart,date1,date2)的参数。
例:

SELECT DATEPART(SECOND, DATETIME ‘2000-02-02 13:33:40.00’);
查询结果为:40
SELECT DATEPART(DY, ‘2000-02-02’);
查询结果为:33
SELECT DATEPART(WEEKDAY, ‘2002-02-02’);
查询结果为:7
说明:日期函数:date_part,其功能与 datepart 完全一样。但是写法有点不同:
select datepart(year,‘2008-10-10’);如果用 date_part,则要写成:select
date_part(‘2008-10-10’,‘year’),即:参数顺序颠倒,同时指定要获取的日期部分
的参数要带引号。
函数 DAY
语法:DAY(date)
功能:返回指定日期在月份中的天数
例:

SELECT DAY(‘2016-06-07’);
查询结果为:7
函数 DAYNAME
语法:DAYNAME(date)
功能:返回日期的星期名称。
例:

SELECT DAYNAME(DATE ‘2012-01-01’);
查询结果为:Sunday
函数 DAYOFMONTH
语法:DAYOFMONTH(date)
功能:返回日期为所处月份中的第几天。
例:

SELECT DAYOFMONTH(‘2003-01-03’);
查询结果为:3
函数 DAYOFWEEK
语法:DAYOFWEEK(date)
功能:返回日期为所处星期中的第几天。

SELECT DAYOFWEEK(‘2003-01-01’);
查询结果为:4
函数 DAYOFYEAR
语法:DAYOFYEAR(date)
功能:返回日期为所处年中的第几天。

SELECT DAYOFYEAR(‘2003-03-03’);
查询结果为:62
函数 DAYS_BETWEEN
语法: DAYS_BETWEEN(dt1,dt2)
功能:返回两个日期之间相差的天数。

函数 GETDATE
语法:GETDATE(n)
功能:返回系统的当前时间戳。
参数:n:指定毫秒的精度。取值范围 0-6,默认为 6。

SELECT GETDATE();
查询结果为:返回系统的当前日期时间,如 2011-12-05 11:31:10.359000
函数 GREATEST
语法:GREATEST(date1,date2,date3)
功能:求 date1、date2 和 date3 中的最大日期。

SELECT GREATEST(date’1999-01-01’,date’1998-01-01’,date’2000-01-01’);
查询结果:2000-01-01
函数 GREAT
语法:GREAT (date1,date2)
功能:求 date1、date2 中的最大日期。

SELECT GREAT (date’1999-01-01’, date’2000-01-01’);
查询结果:2000-01-01
函数 HOUR
语法:HOUR(time)
功能:返回时间中的小时分量。

SELECT HOUR(TIME ‘20:10:16’);
查询结果为:20
LAST_DAY(date)
语法:LAST_DAY(date)
功能:返回 date 所在月最后一天的日期,date 是日期类型(DATE)或时间戳类型
(TIMESTAMP),返回类型与 date 相同。

SELECT LAST_DAY(SYSDATE) “Days Left”;
查询结果为:如:当前日期为 2003 年 2 月的某一天,则结果为 2003-02-28
SELECT LAST_DAY(TIMESTAMP ‘2000-01-11 12:00:00’);
查询结果为:2000-01-31
函数 LEAST
语法:LEAST(date1,date2,date3)
功能:求date1、date2和date3中的最小日期。

SELECT LEAST(date’1999-01-01’,date’1998-01-01’,date’2000-01-01’);
查询结果:1998-01-01
函数 MINUTE
语法:MINUTE(time)
功能:返回时间中的分钟分量。

SELECT MINUTE(‘20:10:16’);
查询结果为:10
函数 MONTH
语法:MONTH(date)
功能:返回日期中的月份分量。

SELECT MONTH(‘2002-11-12’);
查询结果为:11
函数 NOW
语法:NOW(n)
功能:返回系统的当前时间戳。等价于 GETDATE()。
参数:n:指定毫秒的精度。取值范围 0-6,默认为 6。

函数 QUARTER
语法:QUARTER(date)
功能:返回日期在所处年中的季度数。

SELECT QUARTER(‘2002-08-01’);
查询结果为:3
函数 SECOND
语法:SECOND(time)
功能:返回时间中的秒分量。

SELECT SECOND(‘08:10:25.300’);
查询结果为:25
函数 SYSDATE
语法: SYSDATE()
功能: 获取系统当前时间。

SELECT SYSDATE();
查询结果:当前系统时间
函数 WEEK
语法:WEEK(date)
功能:返回指定日期属于所在年中的第几周。

SELECT WEEK(DATE ‘2003-02-10’);
查询结果为:7
函数 WEEKDAY
语法:WEEKDAY(date)
功能:返回指定日期的星期值。如果是星期日则返回 0。

SELECT WEEKDAY(DATE ‘1998-10-26’);
查询结果:1
函数 WEEKS_BETWEEN
语法:WEEKS_BETWEEN(date1,date2)
功能:返回两个日期之间相差周数。

SELECT WEEKS_BETWEEN(DATE ‘1998-2-28’, DATE ‘1998-10-31’);
查询结果:-35
函数 YEAR
语法:YEAR(date)
功能:返回日期中的年分量。

SELECT YEAR(DATE ‘2001-05-12’);
查询结果为:2001
函数 YEARS_BETWEEN
语法:YEARS_BETWEEN(date1,date2)
功能:返回两个日期之间相差年数。

SELECT YEARS_BETWEEN(DATE ‘1998-2-28’, DATE ‘1999-10-31’);
查询结果为: -1
函数 DATE_FORMAT
语法:DATE_FORMAT (d datetime, format varchar)
功能:以不同的格式显示日期/时间数据。
参数:
d:可以是可以是一个 DATETIME、TIME、DATE、timestamp with time zone、
timestamp with LOCAL time zone 类型(时区忽略,使用当前时区)、一个
YYYYMMDD YYMMDD YMMDD YYYMMDD 格式的整形(不支持)。 format: 规定日期/时间的输出格式。格式有以下:27 个(NG 表示暂不支持)。

format 释义 备注
%a 缩写星期名
%b 缩写月名
%c 月,数值(0-12) 暂不支持
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31) 暂不支持
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23) 暂不支持
%l 小时 (1-12) 暂不支持
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 星期(0„„52), 这里星期一是星期的第一天 暂不支持
%W 星期名字(Sunday、Tuesday、Wednesday、Thursday、Friday、Saturday)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%% 一个文字“%”

select date_format(timestamp ‘1980-1-1
1:1:1.123456789’,’%Y-%m-%d %H:%i:%s’);
查询结果:1980-01-01 01:01:01
函数 SEC_TO_TIME
语法:SEC_TO_TIME (sec int)
功能:将秒换算成时间

select sec_to_time(104399);
查询结果: 28:59:59

————————————————
版权声明:本文为CSDN博主「run65536」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/run65536/article/details/124766413

标签:01,数据库,汇总,查询,DATE,日期,SELECT,date,达梦
From: https://www.cnblogs.com/sunalways/p/16754250.html

相关文章

  • selenium 函数汇总
    目录截图滚动条相关操作判断状态获取网页相关数据浏览器操作元素操作截图截某个元素的图ele=driver.find_element(By.XPATH,"//div[@class='alertalert-successale......
  • Canal + RabbitMQ 实现监听 MySQL 数据库
    第一步:开启Mysql Biglog日志,Mysql8.0以上默认开启日志(window路径:C:\ProgramData\MySQL\MySQLServer8.0\mysql.ini)1.添加配置[mysqld]log-bin=mysql-bin#开启bi......
  • 【学习笔记】数据库级别的MD5加密
    数据库级别的MD5加密什么是MD5?MD5信息摘要算法(英语:MD5Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信......
  • 阿里云服务器中MySQL数据库被攻击
    前几天刚领了一个月的阿里云服务器玩,在里面装了MySQL,然后这几天找了个小项目练习着玩呢,就将表建在里面了。刚访问添加员工还好好的,刚给员工分页查询呢,啪一下,很突然昂,就......
  • mysql8 navicat连接数据库报错
    一、报错场景mysql安装成功后,通过cmd连接mysql可以连接成功,但是通过navicat连接数据库时,报错。无法连接成功二、原因mysql8开始,数据库密码的加密方式发生变化。由原来的......
  • 【MySQL从入门到精通】【高级篇】(二十一)数据库优化步骤_查看系统性能参数
    文章目录​​1.简介​​​​2.数据库服务器的优化步骤​​​​3.查看系统性能参数​​​​总结​​1.简介上一篇文章我们介绍了哪些情况下适合创建索引,哪些情况下不适合......
  • 配置Django实现数据库读写分离
    配置Django实现数据库读写分离django在进行数据库操作的时候,读取数据与写数据(增、删、改)可以分别从不同的数据库进行操作。1.在配置文件中增加slave数据库的配置DATABA......
  • 数据库概述、什么是SQL
    什么是数据库数据库:DataBase,简称DB。按照一定格式存储数据的一些文件的组合。顾名思义:存储的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据什么是数......
  • 常见问题汇总 --- Google Chrome浏览器翻译失败
    打开C:\Windows\System32\drivers\etc·目录下的hosts文件。添加下面两行203.208.40.66translate.google.com203.208.40.66translate.googleapis.com使用win+R键运行......
  • MySQL数据库入门
    ​​初识数据库​​​​MySQL操作表和表记录​​​​单表查询进阶与多表查询​​​​Python操作MySQL以及数据库索引​​​​MySQL补充和备份​​......