DATEADD() 函数不返回相加值

Posted

技术标签:

【中文标题】DATEADD() 函数不返回相加值【英文标题】:DATEADD() function doesn't return the adding value 【发布时间】:2021-12-15 00:41:17 【问题描述】:

我想创建一个可以将输入日期添加 30 天的函数,但我收到一条错误消息:#1064 - 您的 SQL 语法有错误;查看与您的 mysql 服务器版本相对应的手册,了解在 '30, last_date) 附近使用的正确语法; 结束'

这是我的代码:

DELIMITER //
CREATE FUNCTION expected_date ( 
  last__date DATE
)
RETURNS DATE
BEGIN
   RETURN DATE_ADD(DAY, 30, `last_date`);
END; //
DELIMITER ;

我应该如何解决它?

【问题讨论】:

您的输入参数是last__date,带有两个下划线。你的回报应该是return date_add(day, 30, last__date);。您的函数可能更适合有 2 个参数 - 一个称为 last__date,另一个称为 days_to_add。这样,您可以使用它来获取 30 天、60 天或您传递给函数的可能天数的预期日期。 【参考方案1】:
CREATE FUNCTION expected_date ( 
  pdate DATE
)
RETURNS DATE
BEGIN
   RETURN DATE_ADD(pdate, interval 30 day);
END; 

【讨论】:

以上是关于DATEADD() 函数不返回相加值的主要内容,如果未能解决你的问题,请参考以下文章

嗯。。。。。SQL函数名之DATEADD的用法

sqlserver日期计算的问题

oracle dateadd函数

jpa 查询中不支持 DateAdd 函数

Redshift dateadd() 函数错误白色将时间值从 varchar 转换为 time

Excel SQL 查询中的 DateAdd 函数不起作用