SQL用户定义函数计算两个日期之间的天数

Posted

技术标签:

【中文标题】SQL用户定义函数计算两个日期之间的天数【英文标题】:SQL User Defined Function to calculate the number of days between two dates 【发布时间】:2017-01-01 17:14:06 【问题描述】:
CREATE FUNCTION weekdays (DATE1 DATETIME, DATE2 DATETIME) 
    RETURNS INTEGER
    BEGIN 
        RETURN DATEDIFF(day, DATE1, DATE2);
    END

错误:“BEGIN”处或附近的语法错误 第 3 行:开始

我错过了什么。我尝试了许多变体,但还没有解决它。我正在使用 mysql

【问题讨论】:

DATEDIFF 接受两个参数。你这里有 3 个。 你到底想做什么? 【参考方案1】:

试试这个:

delimiter $$

CREATE FUNCTION weekdays (DATE1 DATETIME, DATE2 DATETIME) 
    RETURNS INTEGER
    BEGIN 
        RETURN DATEDIFF(DATE1, DATE2);
    END $$

DATEDIFF 只取两个参数。

【讨论】:

【参考方案2】:

它对我有什么作用:

SELECT A.DOCNUMBR,A.DOCDATE,DATEDIFF(DAY,A.DOCDATE,GETDATE()) AS DAYS_CALC,
  FROM RM_TRANSACTIONS AS A
WHERE A.CURTRXAMNT <> 0

结果以天数显示文档编号、文档日期和文档年龄。

如果您想稍后在 Excel 中创建一个老化报告,这将非常有用。

欧文公关

【讨论】:

问题是要求一个函数,而不是一个 SQL

以上是关于SQL用户定义函数计算两个日期之间的天数的主要内容,如果未能解决你的问题,请参考以下文章

SQL 计算两个日期相差多少天数的函数

SQL 计算两个日期相差多少天数的函数

mysql两个日期计算天数

如何写计算两个日期之间的天数函数

VB里面算两个日期之间相隔的天数用哪个函数

db2 计算间隔天数