Thread: Create Calendar

Create Calendar

From
"Muhyiddin A.M Hayat"
Date:
Dear All,
 
How to create Calendar using Function/View.
For example i would like to display date 2004-12-01 to 2004-12-20.
 
date
------
2004-12-01
2004-12-02
2004-12-03
2004-12-04
2004-12-05
..................
.................. 
2004-12-20

Re: Create Calendar

From
Michael Fuhr
Date:
On Sat, Dec 11, 2004 at 03:26:33AM +0800, Muhyiddin A.M Hayat wrote:

> How to create Calendar using Function/View. 
> For example i would like to display date 2004-12-01 to 2004-12-20. 

You could write a function that returns SETOF DATE.  Some sections
of the documentation you'll want to study are:

"Data Types" chapter, "Date/Time Types" section

"Functions and Operators" chapter, "Date/Time Functions and
Operators" section

"PL/pgSQL - SQL Procedural Language" chapter, especially the
"Control Structures" section

If you have trouble then please post what you've tried with an
explanation of how you'd like it to work and a description of
what actually happens.

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/


Re: Create Calendar

From
Joe Conway
Date:
Muhyiddin A.M Hayat wrote:
> How to create Calendar using Function/View. 
> For example i would like to display date 2004-12-01 to 2004-12-20. 
> 
> date
> ------
> 2004-12-01 
> 2004-12-02 
> 2004-12-03 
> 2004-12-04 
> 2004-12-05
> ..................
> .................. 
> 2004-12-20 


-- Use in Postgres 7.4.x and earlier.
-- In Postgres 8.0.0 generate_series() is a built-in function
CREATE OR REPLACE FUNCTION generate_series(int, int) RETURNS setof int AS ' BEGIN  FOR i IN $1..$2 LOOP   RETURN NEXT
i; END LOOP;  RETURN; END;
 
' LANGUAGE plpgsql;

select '2004/12/01'::date + f1 from generate_series(0, 19) as t(f1);  ?column?
------------ 2004-12-01 2004-12-02 2004-12-03 2004-12-04 2004-12-05 [...] 2004-12-20
(20 rows)

HTH,

Joe