VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

DATEDIFF

功能描述

Vastbase G100在MySQL兼容模式下支持DATEDIFF函数,用于返回两个日期之间的天数。函数返回date1 - date2的计算结果,date1和date2两个参数必须是有效的日期或日期时间值。

如果输入参数传递的是日期时间值,则DATEDIFF函数仅将日期部分用于计算,并忽略时间部分。

语法格式

DATEDIFF(date1,date2)

参数说明

  • date1

    输入的日期时间1。

  • date2

    输入的日期时间2。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。

  • 支持版本:

    • V2.2 Build 10(Patch No.10)及以上补丁版本。

    • V2.2 Build 12及以上版本。

示例

前置步骤:创建兼容模式为MySQL的库db_mysql,并进入。

create  database  db_mysql  dbcompatibility  'B';
\c  db_mysql

示例1:直接调用DATEDIFF函数。

select datediff(date'2020-2-29',date'2020-3-29');

返回结果分别为:

 datediff
----------
      -29
(1 row)

示例2:在存储过程中使用DATEDIFF函数。

1、设置serveroutput 为on(允许将dbms_output.put_line的输出信息输出至vsql的命令界面的屏幕上)。

set serveroutput on;

2、创建存储过程。

create or replace procedure p_1131144 (col1 text,col2 text)
as
begin
if datediff(col1,col2) < 0
then DBMS_OUTPUT.PUT_LINE(col2);
ELSIF datediff(col1,col2) = 0
then DBMS_OUTPUT.PUT_LINE('相等');
else DBMS_OUTPUT.PUT_LINE(col1);
end if;
end;
/

3、调用存储过程(当两个输入参数日期值相等时)。

call p_1131144('2020-1-1','2020-01-01');

返回结果为:

相等
p_1131144
---------

(1 row)

4、调用存储过程(当输入的第一个日期值小于第二个日期值,返回第二个日期值)。

call p_1131144('2021-1-1','2022-1-1');

返回结果为:

2022-1-1
 p_1131144
-----------

(1 row)

5、调用存储过程(当输入的第一个日期值大于第二个日期值,返回第一个日期值)。

call p_1131144('2020-1-1','2019-1-1');

返回结果为:

2020-1-1
 p_1131144
-----------

(1 row)