<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Manuel &#124; empty &#187; base de datos</title>
	<atom:link href="http://manuel.radiohead.cl/category/base-de-datos/feed/" rel="self" type="application/rss+xml" />
	<link>http://manuel.radiohead.cl</link>
	<description>Comenzando a escribir...</description>
	<lastBuildDate>Wed, 14 Apr 2010 14:05:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Día hábil anterior/próximo en PostgreSQL</title>
		<link>http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/</link>
		<comments>http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 04:54:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[base de datos]]></category>
		<category><![CDATA[dias habiles]]></category>
		<category><![CDATA[funcion]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=30</guid>
		<description><![CDATA[Unos &#8220;conocidos&#8221; reclamaron que no solamente deseaban sacar el proximo día hábil, sino también deseaban saber cuales eran los N...]]></description>
			<content:encoded><![CDATA[<p>Unos &#8220;conocidos&#8221; reclamaron que no solamente deseaban sacar el proximo día hábil, sino también deseaban saber cuales eran los N anteriores días habiles. Ademas se reportaron fallos con fecha sabado y/o domingo.</p>
<p>Por lo anterior y otras razones más, publico la v2 que ahora se llama dia_habil y se utiliza de la siguiente forma:</p>
<ul>
<li>Para el/los próximo(s) día(s):</li>
</ul>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> utilidades<span style="color: #66cc66;">.</span>dia_habil<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">CURRENT_DATE</span><span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<ul>
<li>Para el/los anterior(es) día(s):</li>
</ul>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> utilidades<span style="color: #66cc66;">.</span>dia_habil<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">CURRENT_DATE</span><span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p><span id="more-30"></span></p>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">--DROP FUNCTION utilidades.dia_habil (IN in_dias int4, IN in_desde date) CASCADE;</span><br />
<span style="color: #808080; font-style: italic;">/**<br />
* Funcion que calcula el ANTERIOR o PROXIMO dia habil<br />
*<br />
* @date 2009-10-07<br />
* @author MANUEL DIEGO PAILLAFIL GAMBOA<br />
* @email manuel@radiohead.cl<br />
* @url http://manuel.radiohead.cl/<br />
*<br />
* @param INT<br />
* @param DATE<br />
*/</span><br />
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">FUNCTION</span> utilidades<span style="color: #66cc66;">.</span>dia_habil<span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #993333; font-weight: bold;">INTEGER</span><span style="color: #66cc66;">,</span> in_desde <span style="color: #993333; font-weight: bold;">DATE</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #993333; font-weight: bold;">RETURNS</span> <span style="color: #993333; font-weight: bold;">DATE</span> <span style="color: #993333; font-weight: bold;">AS</span><br />
$BODY$<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">DECLARE</span><br />
&nbsp; &nbsp; fecha_actual <span style="color: #993333; font-weight: bold;">DATE</span> :<span style="color: #66cc66;">=</span> in_desde;<br />
&nbsp; &nbsp; fecha_limite <span style="color: #993333; font-weight: bold;">DATE</span>;<br />
&nbsp; &nbsp; retorno <span style="color: #993333; font-weight: bold;">DATE</span>;<br />
&nbsp; &nbsp; dias_extras int4 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;<br />
&nbsp; &nbsp; dias_extras_alt int4 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;<br />
&nbsp; &nbsp; dia int4;<br />
&nbsp; &nbsp; generate_digit1 int4;<br />
&nbsp; &nbsp; generate_digit2 int4;<br />
&nbsp; &nbsp; row_fechas record;<br />
&nbsp; &nbsp; row_fechas_alt record;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">BEGIN</span><br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> in_dias;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">EXTRACT</span><span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> fecha_actual<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'1 days'</span>::<span style="color: #993333; font-weight: bold;">INTERVAL</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">ELSE</span> <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'0 days'</span>::<span style="color: #993333; font-weight: bold;">INTERVAL</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; fecha_limite :<span style="color: #66cc66;">=</span> fecha_actual;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">ELSE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> in_dias;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">EXTRACT</span><span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> fecha_actual<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'2 day'</span>::<span style="color: #993333; font-weight: bold;">INTERVAL</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">ELSE</span> <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'1 days'</span>::<span style="color: #993333; font-weight: bold;">INTERVAL</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; fecha_limite :<span style="color: #66cc66;">=</span> fecha_actual;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">FOR</span> row_fechas <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SELECT</span> fecha_actual <span style="color: #66cc66;">+</span> s<span style="color: #66cc66;">.</span>a <span style="color: #993333; font-weight: bold;">AS</span> fecha <span style="color: #993333; font-weight: bold;">FROM</span> generate_series<span style="color: #66cc66;">&#40;</span>generate_digit1<span style="color: #66cc66;">,</span>generate_digit2<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> s<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> LOOP<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">EXTRACT</span><span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> row_fechas<span style="color: #66cc66;">.</span>fecha<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span> <span style="color: #993333; font-weight: bold;">AND</span> in_dias <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras :<span style="color: #66cc66;">=</span> dias_extras <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">ELSE</span> <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">AND</span> in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras :<span style="color: #66cc66;">=</span> dias_extras <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> LOOP;<br />
<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> in_dias <span style="color: #66cc66;">+</span> dias_extras;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">ELSE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> in_dias <span style="color: #66cc66;">+</span> dias_extras;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">FOR</span> row_fechas_alt <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SELECT</span> fecha_actual <span style="color: #66cc66;">+</span> s<span style="color: #66cc66;">.</span>a <span style="color: #993333; font-weight: bold;">AS</span> fecha <span style="color: #993333; font-weight: bold;">FROM</span> generate_series<span style="color: #66cc66;">&#40;</span>generate_digit1<span style="color: #66cc66;">,</span>generate_digit2<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> s<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> LOOP<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">EXTRACT</span><span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> row_fechas_alt<span style="color: #66cc66;">.</span>fecha<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras_alt :<span style="color: #66cc66;">=</span> dias_extras_alt <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">ELSE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras_alt :<span style="color: #66cc66;">=</span> dias_extras_alt <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Las siguientes 7 lineas se descomentan si se desea utilizar una tabla que mantenga los feriados<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* con fecha absoluta(25 de Diciembre es 25/12/2009(Formato SQL, EURUPEO))<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--ELSE IF(row_fechas_alt.fecha IN (SELECT fecha FROM utilidades.feriados WHERE fecha = row_fechas_alt.fecha AND EXTRACT(dow FROM fecha) NOT IN (0,6)))THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; IF(in_dias &lt; 0)THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; &nbsp; &nbsp; dias_extras_alt := dias_extras_alt - 1;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; ELSE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; &nbsp; &nbsp; dias_extras_alt := dias_extras_alt + 1;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; END IF;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--END IF;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span> LOOP;<br />
<br />
&nbsp; &nbsp; retorno :<span style="color: #66cc66;">=</span> fecha_limite <span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">+</span> dias_extras_alt<span style="color: #66cc66;">&#41;</span>::<span style="color: #993333; font-weight: bold;">VARCHAR</span> <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' days'</span><span style="color: #66cc66;">&#41;</span>::<span style="color: #993333; font-weight: bold;">INTERVAL</span>;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">RETURN</span> retorno;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">END</span>;<br />
$BODY$<br />
&nbsp; <span style="color: #993333; font-weight: bold;">LANGUAGE</span> <span style="color: #ff0000;">'plpgsql'</span> VOLATILE;</div></td></tr></tbody></table></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL&amp;link=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;notes=Unos%20%22conocidos%22%20reclamaron%20que%20no%20solamente%20deseaban%20sacar%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%2C%20sino%20tambi%C3%A9n%20deseaban%20saber%20cuales%20eran%20los%20N%20anteriores%20d%C3%ADas%20habiles.%20Ademas%20se%20reportaron%20fallos%20con%20fecha%20sabado%20y%2Fo%20domingo.%0D%0A%0D%0APor%20lo%20anterior%20y%20otras%20razones%20m%C3%A1s%2C%20publico%20la%20v2%20que%20ahora%20se%20llama%20dia_habil%20y&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL&amp;link=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;notes=Unos%20%22conocidos%22%20reclamaron%20que%20no%20solamente%20deseaban%20sacar%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%2C%20sino%20tambi%C3%A9n%20deseaban%20saber%20cuales%20eran%20los%20N%20anteriores%20d%C3%ADas%20habiles.%20Ademas%20se%20reportaron%20fallos%20con%20fecha%20sabado%20y%2Fo%20domingo.%0D%0A%0D%0APor%20lo%20anterior%20y%20otras%20razones%20m%C3%A1s%2C%20publico%20la%20v2%20que%20ahora%20se%20llama%20dia_habil%20y&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL&amp;link=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;notes=Unos%20%22conocidos%22%20reclamaron%20que%20no%20solamente%20deseaban%20sacar%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%2C%20sino%20tambi%C3%A9n%20deseaban%20saber%20cuales%20eran%20los%20N%20anteriores%20d%C3%ADas%20habiles.%20Ademas%20se%20reportaron%20fallos%20con%20fecha%20sabado%20y%2Fo%20domingo.%0D%0A%0D%0APor%20lo%20anterior%20y%20otras%20razones%20m%C3%A1s%2C%20publico%20la%20v2%20que%20ahora%20se%20llama%20dia_habil%20y&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL&amp;link=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;notes=Unos%20%22conocidos%22%20reclamaron%20que%20no%20solamente%20deseaban%20sacar%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%2C%20sino%20tambi%C3%A9n%20deseaban%20saber%20cuales%20eran%20los%20N%20anteriores%20d%C3%ADas%20habiles.%20Ademas%20se%20reportaron%20fallos%20con%20fecha%20sabado%20y%2Fo%20domingo.%0D%0A%0D%0APor%20lo%20anterior%20y%20otras%20razones%20m%C3%A1s%2C%20publico%20la%20v2%20que%20ahora%20se%20llama%20dia_habil%20y&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL&amp;link=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;notes=Unos%20%22conocidos%22%20reclamaron%20que%20no%20solamente%20deseaban%20sacar%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%2C%20sino%20tambi%C3%A9n%20deseaban%20saber%20cuales%20eran%20los%20N%20anteriores%20d%C3%ADas%20habiles.%20Ademas%20se%20reportaron%20fallos%20con%20fecha%20sabado%20y%2Fo%20domingo.%0D%0A%0D%0APor%20lo%20anterior%20y%20otras%20razones%20m%C3%A1s%2C%20publico%20la%20v2%20que%20ahora%20se%20llama%20dia_habil%20y&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div><div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div style="clear: both;"></div></div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Próximo día hábil en PostgreSQL</title>
		<link>http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/</link>
		<comments>http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 14:10:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[base de datos]]></category>
		<category><![CDATA[dias habiles]]></category>
		<category><![CDATA[funcion]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=10</guid>
		<description><![CDATA[Una función en PL/pgSQL, que permite saber el proximo día hábil dependiendo de dos valores: Cuantos días Fecha de Inicio...]]></description>
			<content:encoded><![CDATA[<div id='stb-box-5831' class='stb-warning_box' >
<p><strong>Funcion obsoleta y con errores.</strong></p>
<p>Versión 2 en:</p>
<p><a href="http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/">http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/</a></p>
<p></div>Una función en PL/pgSQL, que permite saber el proximo día hábil dependiendo de dos valores:</p>
<ol>
<li>Cuantos días</li>
<li>Fecha de Inicio</li>
</ol>
<p>El uso es de la siguiente forma para los próximos 15 días hábiles a contar de hoy:</p>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> utilidades<span style="color: #66cc66;">.</span>proximo_dia_habil<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">CURRENT_DATE</span><span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p><span id="more-10"></span><br />
Aquí la función:</p>
<div class="codecolorer-container plsql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td><div class="plsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #080; font-style: italic;">--DROP FUNCTION &quot;utilidades&quot;.&quot;proximo_dia_habil&quot; (IN in_dias int4, IN in_desde date) CASCADE;</span><br />
<span style="color: #080; font-style: italic;">/**<br />
* Funcion que calcula el proximo dia habil<br />
*<br />
* @param INT<br />
* @param DATE<br />
*/</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=CREATE"><span style="color: #00F;">CREATE</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=OR"><span style="color: #00F;">OR</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=REPLACE"><span style="color: #000;">REPLACE</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FUNCTION"><span style="color: #00F;">FUNCTION</span></a> <span style="color: #F00;">&quot;utilidades&quot;</span><span style="color: #00F;">.</span><span style="color: #F00;">&quot;proximo_dia_habil&quot;</span> <span style="color: #00F;">&#40;</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> in_dias int4<span style="color: #00F;">,</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> in_desde <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a><span style="color: #00F;">&#41;</span><br />
RETURNS <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a><br />
$BODY$<br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DECLARE"><span style="color: #00F;">DECLARE</span></a><br />
fecha_actual <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a> <span style="color: #00F;">:=</span> in_desde<span style="color: #00F;">;</span><br />
fecha_limite <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a><span style="color: #00F;">;</span><br />
retorno <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a><span style="color: #00F;">;</span><br />
dias_extras int4 <span style="color: #00F;">:=</span> <span style="color: #800;">0</span><span style="color: #00F;">;</span><br />
dias_extras_alt int4 <span style="color: #00F;">:=</span> <span style="color: #800;">0</span><span style="color: #00F;">;</span><br />
dia int4<span style="color: #00F;">;</span><br />
row_fechas <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=RECORD"><span style="color: #00F;">RECORD</span></a><span style="color: #00F;">;</span><br />
row_fechas_alt <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=RECORD"><span style="color: #00F;">RECORD</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=BEGIN"><span style="color: #00F;">BEGIN</span></a><br />
<span style="color: #080; font-style: italic;">/**<br />
* @date 2009-10-06<br />
* @author Manuel Paillafil Gamboa<br />
* @email manuel@radiohead.cl<br />
*/</span><br />
fecha_limite <span style="color: #00F;">:=</span> fecha_actual <span style="color: #00F;">+</span> <span style="color: #00F;">&#40;</span>in_dias<span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=VARCHAR"><span style="color: #00F;">VARCHAR</span></a> <span style="color: #00F;">||</span> <span style="color: #F00;">' days'</span><span style="color: #00F;">&#41;</span><span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTERVAL"><span style="color: #00F;">INTERVAL</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FOR"><span style="color: #00F;">FOR</span></a> row_fechas <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> fecha_actual <span style="color: #00F;">+</span> s<span style="color: #00F;">.</span>a <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> fecha <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> generate_series<span style="color: #00F;">&#40;</span><span style="color: #800;">0</span><span style="color: #00F;">,</span>in_dias<span style="color: #00F;">,</span><span style="color: #800;">1</span><span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> s<span style="color: #00F;">&#40;</span>a<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=EXTRACT"><span style="color: #000;">EXTRACT</span></a><span style="color: #00F;">&#40;</span>DOW <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> row_fechas<span style="color: #00F;">.</span>fecha<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTO"><span style="color: #00F;">INTO</span></a> dia<span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">&#40;</span>dia <span style="color: #00F;">=</span> <span style="color: #800;">6</span><span style="color: #00F;">&#41;</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=THEN"><span style="color: #00F;">THEN</span></a><br />
dias_extras <span style="color: #00F;">:=</span> dias_extras <span style="color: #00F;">+</span> <span style="color: #800;">2</span><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><span style="color: #00F;">;</span><br />
dias_extras_alt <span style="color: #00F;">:=</span> <span style="color: #800;">0</span><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FOR"><span style="color: #00F;">FOR</span></a> row_fechas_alt <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> fecha_actual <span style="color: #00F;">+</span> s<span style="color: #00F;">.</span>a <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> fecha <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> generate_series<span style="color: #00F;">&#40;</span><span style="color: #800;">0</span><span style="color: #00F;">,</span>in_dias<span style="color: #00F;">+</span>dias_extras<span style="color: #00F;">,</span><span style="color: #800;">1</span><span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> s<span style="color: #00F;">&#40;</span>a<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=EXTRACT"><span style="color: #000;">EXTRACT</span></a><span style="color: #00F;">&#40;</span>DOW <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> row_fechas_alt<span style="color: #00F;">.</span>fecha<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTO"><span style="color: #00F;">INTO</span></a> dia<span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">&#40;</span>dia <span style="color: #00F;">=</span> <span style="color: #800;">6</span><span style="color: #00F;">&#41;</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=THEN"><span style="color: #00F;">THEN</span></a><br />
dias_extras_alt <span style="color: #00F;">:=</span> dias_extras_alt <span style="color: #00F;">+</span> <span style="color: #800;">2</span><span style="color: #00F;">;</span><br />
<span style="color: #080; font-style: italic;">/**<br />
* Las siguientes 3 lineas se descomentan si se desea utilizar una tabla que mantenga los feriados<br />
* con fecha absoluta(25 de Diciembre -&amp;gt; 25/12/2009(Formato SQL, EURUPEO))<br />
*/</span><br />
<span style="color: #080; font-style: italic;">--ELSE IF(row_fechas_alt.fecha IN (SELECT fecha FROM utilidades.tbl_feriados) AND dia != 0)THEN</span><br />
<span style="color: #080; font-style: italic;">--dias_extras_alt := dias_extras_alt + 1;</span><br />
<span style="color: #080; font-style: italic;">--END IF;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><span style="color: #00F;">;</span><br />
retorno <span style="color: #00F;">:=</span> fecha_limite <span style="color: #00F;">+</span> <span style="color: #00F;">&#40;</span>dias_extras_alt<span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=VARCHAR"><span style="color: #00F;">VARCHAR</span></a> <span style="color: #00F;">||</span> <span style="color: #F00;">' days'</span><span style="color: #00F;">&#41;</span><span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTERVAL"><span style="color: #00F;">INTERVAL</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=RETURN"><span style="color: #00F;">RETURN</span></a> retorno<span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a><span style="color: #00F;">;</span><br />
$BODY$<br />
LANGUAGE PLpgSQL<br />
CALLED <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=ON"><span style="color: #00F;">ON</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=NULL"><span style="color: #00F;">NULL</span></a> INPUT<br />
VOLATILE<br />
EXTERNAL SECURITY INVOKER<span style="color: #00F;">;</span></div></td></tr></tbody></table></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+&amp;link=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;notes=Una%20funci%C3%B3n%20en%20PL%2FpgSQL%2C%20que%20permite%20saber%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%20dependiendo%20de%20dos%20valores%3A%0D%0A%0D%0A%09Cuantos%20d%C3%ADas%0D%0A%09Fecha%20de%20Inicio%0D%0A%0D%0AEl%20uso%20es%20de%20la%20siguiente%20forma%20para%20los%20pr%C3%B3ximos%2015%20d%C3%ADas%20h%C3%A1biles%20a%20contar%20de%20hoy%3A%0D%0A%0D%0ASELECT%20utilidades.proximo_dia_habil%2815%2C%20current_date%29%3B%0D%0A%0D%0A%0D%0AAqu%C3%AD%20la%20funci%C3%B3n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+&amp;link=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;notes=Una%20funci%C3%B3n%20en%20PL%2FpgSQL%2C%20que%20permite%20saber%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%20dependiendo%20de%20dos%20valores%3A%0D%0A%0D%0A%09Cuantos%20d%C3%ADas%0D%0A%09Fecha%20de%20Inicio%0D%0A%0D%0AEl%20uso%20es%20de%20la%20siguiente%20forma%20para%20los%20pr%C3%B3ximos%2015%20d%C3%ADas%20h%C3%A1biles%20a%20contar%20de%20hoy%3A%0D%0A%0D%0ASELECT%20utilidades.proximo_dia_habil%2815%2C%20current_date%29%3B%0D%0A%0D%0A%0D%0AAqu%C3%AD%20la%20funci%C3%B3n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+&amp;link=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;notes=Una%20funci%C3%B3n%20en%20PL%2FpgSQL%2C%20que%20permite%20saber%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%20dependiendo%20de%20dos%20valores%3A%0D%0A%0D%0A%09Cuantos%20d%C3%ADas%0D%0A%09Fecha%20de%20Inicio%0D%0A%0D%0AEl%20uso%20es%20de%20la%20siguiente%20forma%20para%20los%20pr%C3%B3ximos%2015%20d%C3%ADas%20h%C3%A1biles%20a%20contar%20de%20hoy%3A%0D%0A%0D%0ASELECT%20utilidades.proximo_dia_habil%2815%2C%20current_date%29%3B%0D%0A%0D%0A%0D%0AAqu%C3%AD%20la%20funci%C3%B3n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+&amp;link=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;notes=Una%20funci%C3%B3n%20en%20PL%2FpgSQL%2C%20que%20permite%20saber%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%20dependiendo%20de%20dos%20valores%3A%0D%0A%0D%0A%09Cuantos%20d%C3%ADas%0D%0A%09Fecha%20de%20Inicio%0D%0A%0D%0AEl%20uso%20es%20de%20la%20siguiente%20forma%20para%20los%20pr%C3%B3ximos%2015%20d%C3%ADas%20h%C3%A1biles%20a%20contar%20de%20hoy%3A%0D%0A%0D%0ASELECT%20utilidades.proximo_dia_habil%2815%2C%20current_date%29%3B%0D%0A%0D%0A%0D%0AAqu%C3%AD%20la%20funci%C3%B3n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+&amp;link=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;notes=Una%20funci%C3%B3n%20en%20PL%2FpgSQL%2C%20que%20permite%20saber%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%20dependiendo%20de%20dos%20valores%3A%0D%0A%0D%0A%09Cuantos%20d%C3%ADas%0D%0A%09Fecha%20de%20Inicio%0D%0A%0D%0AEl%20uso%20es%20de%20la%20siguiente%20forma%20para%20los%20pr%C3%B3ximos%2015%20d%C3%ADas%20h%C3%A1biles%20a%20contar%20de%20hoy%3A%0D%0A%0D%0ASELECT%20utilidades.proximo_dia_habil%2815%2C%20current_date%29%3B%0D%0A%0D%0A%0D%0AAqu%C3%AD%20la%20funci%C3%B3n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div><div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div style="clear: both;"></div></div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

