MySql中語句報錯信息怎麼看

我們最常見的報錯信息

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'return returnTime;
  end' at line 13

單引號括起來的部分就是報錯的位置,但實際錯誤的語句就是單引號括起來的前面一句的語句錯誤

下面是我寫的自定義函數

##隨機時間age
drop FUNCTION if exists getTime;

delimiter $$
create function getTime() 
returns TIMESTAMP
no sql
begin
	declare randNum int(2) default 0;
	declare returnTime TIMESTAMP;
	set randNum=floor(rand()*10);
	IF randNum<5 THEN
		set returnTime=date_add(curdate(),interval floor(1-(rand()*365))day);
	ELSE
		set returnTime=date_add(curdate(),interval floor(1+(rand()*365))day);
	END IF
	return returnTime;
end $$

報錯顯示最後一句'return returnTime; end',錯誤處:前一句END IF (未加分號結尾)

正確語法

##隨機時間age
drop FUNCTION if exists getTime;

delimiter $$
create function getTime() 
returns TIMESTAMP
no sql
begin
	declare randNum int(2) default 0;
	declare returnTime TIMESTAMP;
	set randNum=floor(rand()*10);
	IF randNum<5 THEN
		set returnTime=date_add(curdate(),interval floor(1-(rand()*365))day);
	ELSE
		set returnTime=date_add(curdate(),interval floor(1+(rand()*365))day);
	END IF;
	return returnTime;
end $$

還有要注意的是,賦值的時候一定要加set,本人正是因爲這個問題一直沒發現,纔在此深刻檢討

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章