0
我需要在我的年齡計算函數中使用條件,但是如果人的年齡是「轉向」或「轉向」,如何實現'case when'來比較?如何在postgresql中創建函數時使用大小寫
這是我的功能,不計算'轉動'年齡;
CREATE OR REPLACE FUNCTION agecalculator(i date) RETURNS integer AS $$
BEGIN
RETURN EXTRACT(YEAR FROM NOW()) - EXTRACT(YEAR FROM i);
END;
$$ LANGUAGE plpgsql;
這就是我想讓它工作來檢查一個人的Bday是否通過;
CREATE OR REPLACE FUNCTION agecalculator(i date) RETURNS integer AS $$
DECLARE age integer;
BEGIN
age = EXTRACT(YEAR FROM NOW()) - EXTRACT(YEAR FROM i) - 1;
SET age = CASE
WHEN now_month = i_month AND now_day <= i_day
THEN age = age + 1
WHEN now_month < i_month
THEN age = age + 1
END;
RETURN age;
END;
$$ LANGUAGE plpgsql;
SQL爲什麼如此難以預測?先謝謝你!
有什麼不對的'年齡()'函數?但是在生成變量時,使用PL/pgSQL中的'x:= ..'而不是'set'來分配。你也沒有聲明變量'now_month'' i_month'和'now_day' –