gpt4 book ai didi

mysql:时间值的数据截断错误:函数

转载 作者:行者123 更新时间:2023-11-29 08:26:45 24 4
gpt4 key购买 nike

我的函数有两个变量(“日期”,从“日期”中减去的月数)。

这是我的功能:

create function a_testbed.PrevMonth (
in_date date,
in_mn_count int)
RETURNS int
BEGIN
/* local variable declaration */
declare v_date int(255);
declare v_date_format varchar(10);
declare v_date_sub varchar(10);

set v_date_format := DATE_FORMAT(v_date, '%Y-%m');
set v_date_sub := DATE_FORMAT(curdate(), '%Y-%m');

if (in_date is null) then
set v_date := v_date_sub;
elseif (in_mn_count is null or in_mn_count < 0) then
set in_mn_count := 0;
else
set v_date := v_date_sub;
end if;
RETURN v_date_format;
END;
#

不断收到错误:

ERROR 1265 (01000) Data Truncated for column 'v_date' at row 1

有什么想法吗?
谢谢!

最佳答案

你的函数有很多问题:

  1. 您确实set v_date_format := DATE_FORMAT(v_date, '%Y-%m');,但这是在您将ea值分配给v_date之前。

  2. 后来你分配了set v_date := v_date_sub;,但此后你再也没有使用v_date,那有什么意义呢?

    <
  3. 您分配set in_mn_count := 0;,但也从不使用此变量。

  4. 最后RETURN v_date_format;v_date_format 是一个 VARCHAR,但该函数被声明为返回 INT。而且该字符串的内容采用 YYYY-MM 形式,因此它看起来不像整数。

我不确定这些是否会导致数据被截断错误,但是当函数如此损坏时,这似乎并不重要。

关于mysql:时间值的数据截断错误:函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com