【问题标题】:DATEADD() function doesn't return the adding valueDATEADD() 函数不返回相加值
【发布时间】: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 天或您传递给函数的可能天数的预期日期。

标签: mysql sql dateadd


【解决方案1】:
CREATE FUNCTION expected_date ( 
  pdate DATE
)
RETURNS DATE
BEGIN
   RETURN DATE_ADD(pdate, interval 30 day);
END; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 2012-03-12
    相关资源
    最近更新 更多