0
pgsqlで日付の期間を月単位で取得するにはどうすればよいですか?私は日付期間の月の範囲で値を分割する必要があります。同様2016年1月31日と2016年3月31日は2ヶ月の期間のを持っていると私は2によって値を分割する必要があります。私は、pgSQLストアドプロシージャのパラメータとして2つの日付を送信しています。ここでpgSQLで日付のピリオドを整数で取得する方法
pgsqlで日付の期間を月単位で取得するにはどうすればよいですか?私は日付期間の月の範囲で値を分割する必要があります。同様2016年1月31日と2016年3月31日は2ヶ月の期間のを持っていると私は2によって値を分割する必要があります。私は、pgSQLストアドプロシージャのパラメータとして2つの日付を送信しています。ここでpgSQLで日付のピリオドを整数で取得する方法
は数ヶ月の期間リターン整数
CREATE OR REPLACE FUNCTION date_period(start_date varchar,end_date varchar) RETURNS integer AS $LABEL$
DECLARE
v_result integer;
BEGIN
select into v_result date_part('months',end_date::date)- date_part('months',start_date::date) as date_period;
/* v_result is integer */
RETURN (v_result);
/* COMMENTS THIS IF YOU IN DEBUG MODE */
EXCEPTION WHEN OTHERS THEN RETURN (999);
END;
$LABEL$ LANGUAGE plpgsql
SECURITY DEFINER;
CREATE OR REPLACE FUNCTION date_period(start_date varchar,end_date varchar) RETURNS integer AS $LABEL$
DECLARE
v_result integer;
BEGIN
select into v_result ((extract(epoch from end_date::date)-extract(epoch from start_date::date))/60/60/24/30)::integer as date_period;
/* v_result is integer */
RETURN (v_result);
/* COMMENTS THIS IF YOU IN DEBUG MODE */
EXCEPTION WHEN OTHERS THEN RETURN (999);
END;
$LABEL$ LANGUAGE plpgsql
SECURITY DEFINER;
EXEC:date_period( '2016年1月31日'、 '2017年3月31日')SELECT * FROM。
どのようにその変数を使用しますか? 'sum(column_name)/ variable'と書くと、" column "というピリオドが存在しないというエラーが表示されます。 –
これは動作します。私にはタイプミスがありました。ありがとう:) –
こんにちは。少し問題があります。私の日付が「2016/01/31」と「2017/03/31」の場合それは14ヶ月ではなく2ヶ月を示しています。それで私を助けてください。 –