Обсуждение: Equivalent of Oracle next_day function
Is there a postgres equivalent of Oracle's next_day() function? We have a web-based report that lists an employee's hours from Monday (of the current week) through the following Sunday (or sometimes the same period for the previous week); the beginning/end dates are retrieved (in Oracle) using the next_day function, ala:
SELECT TO_CHAR ( ( NEXT_DAY ( SYSDATE, 'MONDAY' ) - 7 ), 'MM/DD/YY' ) AS THEMONDAY FROM DUAL
What would be the simplest way to do this query in PostgreSQL?
SELECT TO_CHAR ( ( NEXT_DAY ( SYSDATE, 'MONDAY' ) - 7 ), 'MM/DD/YY' ) AS THEMONDAY FROM DUAL
What would be the simplest way to do this query in PostgreSQL?
--
David Rickard
Software Engineer
The GTS Companies
A TechBooks Company
----------------------------------------------------------------------------------
The GTS Companies:
GTS Publishing Services, GTS Graphics, GTS Innova:
Your Single-Source Solution!
Los Angeles CA * York, PA * Boston MA * New Delhi, India
----------------------------------------------------------------------------------
David.Rickard@GTSCompanies.com
Visit us on the World Wide Web
http://www.gtscompanies.com
5650 Jillson St., Los Angeles, CA 90040
(323) 888-8889 x331
(323) 888-1849 [fax]
I don't know of an equivalent but this should do what you want (this gives you the preceding Sunday, add one to get Monday): steve=# select current_date - date_part('dow', current_date)::int; Make it a function if you like: steve=# create function startofweek() returns date as 'select current_date - date_part(''dow'', current_date)::int+1' language sql; (note that's two single quotes not double quotes surrounding dow) On Monday it will return the current Monday: steve=#select startofweek(); startofweek ------------- 2003-10-13 Cheers, Steve On Monday 13 October 2003 4:28 pm, David Rickard wrote: > Is there a postgres equivalent of Oracle's next_day() function? We > have a web-based report that lists an employee's hours from Monday > (of the current week) through the following Sunday (or sometimes > the same period for the previous week); the beginning/end dates are > retrieved (in Oracle) using the next_day function, ala: > > SELECT TO_CHAR ( ( NEXT_DAY ( SYSDATE, 'MONDAY' ) - 7 ), > 'MM/DD/YY' ) AS THEMONDAY FROM DUAL > > What would be the simplest way to do this query in PostgreSQL? > > > > -- > > David Rickard > Software Engineer > The GTS Companies > A TechBooks Company > > ------------------------------------------------------------------- >--------------- > > The GTS Companies: > GTS Publishing Services, GTS Graphics, GTS Innova: > Your Single-Source Solution! > Los Angeles CA * York, PA * Boston MA * New Delhi, India > ------------------------------------------------------------------- >--------------- > > > > David.Rickard@GTSCompanies.com > Visit us on the World Wide Web > http://www.gtscompanies.com > 5650 Jillson St., Los Angeles, CA 90040 > (323) 888-8889 x331 > (323) 888-1849 [fax]