pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Paul Thomas <paul@tmsl.demon.co.uk>
To: jeff@dnuk.com
Cc: pgsql-sql @ postgresql . org <pgsql-sql@postgresql.org>
Subject: Re: How to specify the beginning of the month in Postgres SQL syntax?
Date: Wed, 10 Dec 2003 00:52:56 +0000
Message-ID: <20031210005256.C30762@bacon> (raw)
In-Reply-To: <t6k6tv8unr1dm7kpeb275ca0t9in2i910h@4ax.com>
References: <t6k6tv8unr1dm7kpeb275ca0t9in2i910h@4ax.com>


On 07/12/2003 16:16 jeff@dnuk.com wrote:
> Hello,
> 
> I need to create a view in Postgres that has a where clause of the
> date < beginning of month.
> 
> i.e.:
> SELECT supplier_number, Sum(amount) AS due
> FROM purchase_orders
> WHERE date < '2003-12-1' AND paid = 0
> GROUP BY supplier_number
> ORDER BY supplier_number ASC
> 
> 
> As you can see, I've specified the 1st of December this year as the
> where clause. What I want is an SQL statement that automatically
> generates the first of the month. How do I do this?

I do shed-loads of these date-related queries and although it's feasible 
to write some SQL/UDF function to do what you're asking, in my experience 
it is better to process the date in your app and pass it across as a 
parameter. That way you could use the same piece of SQL to get, for 
example, data which is > month owing just by passing 2003-11-01 as the 
date. Probably what you need is to write a function which takes an 
arbitary date and returns the first date in that month/year. You _could_ 
write this as PostgreSQL User Defined Function but writing it as part of 
your app will give you a) greater flexibility as the function will be 
easily available to other parts of your application b) if your app 
language/dev environment has a source-level debugger, you will be able to 
benefit from it when debugging your function and c) someone trying to 
maintain your app in 4 years time will only need to know your application 
language, SQL and a possible (very!) few PostgreSQL-specific variations 
from the SQL language definition.

HTH

-- 
Paul Thomas
+------------------------------+---------------------------------------------+
| Thomas Micro Systems Limited | Software Solutions for the Smaller 
Business |
| Computer Consultants         | 
http://www.thomas-micro-systems-ltd.co.uk   |
+------------------------------+---------------------------------------------+



view thread (5+ messages)  latest in thread

Message-ID: <20031210005256.C30762@bacon>
Permalink:  ../20031210005256.C30762@bacon/
Also on:    postgresql.org/message-id/20031210005256.C30762@bacon

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: paul@tmsl.demon.co.uk, jeff@dnuk.com
  Subject: Re: How to specify the beginning of the month in Postgres SQL syntax?
  In-Reply-To: <20031210005256.C30762@bacon>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox