irpas技术客

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

未知 4342

日期时间函数的参数至少有一个是日期时间类型(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)%pAM 或 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


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #达梦数据库日期函数 #由于 #dm #10 #天因此日期时间函数也不计算这