2013-09-30 133 views
1

我確實經歷了類似的問題及其答案,但它沒有幫助。 這裏是我的方法:MySQL存儲過程返回null

DELIMITER // 
DROP PROCEDURE IF EXISTS test// 
CREATE PROCEDURE test() 
BEGIN 
DECLARE intime TIME; 
SET intime:=(SELECT intime FROM new_attendance WHERE empid='xxx' AND DATE(dt)='2013-08-02'); 
SELECT intime; 
END // 
DELIMITER ; 

當我執行這行代碼它的工作原理,並返回適當的值:

SELECT empid FROM new_attendance WHERE empid='xxx' AND DATE(dt)='2013-08-02' 

,但它沒有內部程序工作。我感謝您的幫助。提前感謝!

+0

恩,是'TIME'類型的'empid'? – hjpotter92

+0

@ hjpotter92 sry ...這是**銀泰**,編輯問題,指出。 –

+0

@mavrosxristoforos它是**銀泰**,請對由此造成的不便深表歉意。 –

回答

3

首先,MySQL中的變量賦值語法是=,而不是:=

編輯:罷工上面,似乎兩種語法畢竟支持...

二,不會是簡單的完全消除intime變量,只是做

DELIMITER // 
DROP PROCEDURE IF EXISTS test// 
CREATE PROCEDURE test() 
BEGIN 
SELECT intime FROM new_attendance WHERE empid='xxx' AND DATE(dt)='2013-08-02'; 
END // 
DELIMITER ; 
+0

我感謝您的幫助,謝謝。 –

+0

@Sunny另外,如果'empid'是'INT'或其派生詞,則不需要用引號括起來。全部。 – hjpotter92

+0

@孫尼不客氣。如果我的答案解決了您的問題,請考慮接受它作爲正確答案。 – geomagas