Timestamp problems...wrong weeks.

Started by Campano, Troyalmost 22 years ago7 messagesgeneral
Jump to latest
#1Campano, Troy
Troy.Campano@LibertyMutual.com

Hello,
I'm having a problem with timestamps in postgresql.
I run the following query to pull dates in this format:
WEEK/MONTH/YEAR

However the data says that April 28th 2004 was in week 4 of April and
that April 29th 2004 was in week 5 of april.
This is incorrect.

This is causing my reports to print out incorrect data.
Do you know why this would happen? Am I doing something wrong?

--SQL CODE
SELECT
current_timestamp,
completion_date,
to_char(current_timestamp,'W/MM/YYYY'),
to_char(completion_date,'W/MM/YYYY')
FROM anna_onestop_database_t
WHERE to_char(current_timestamp,'MM/YYYY') =
to_char(completion_date,'MM/YYYY')
AND upper(solution_provider) = 'N0050961' AND status LIKE 'Closed -
Completed'

--RESULTSET
Timestamptz |completion_date |to_char
|to_char
2004-04-29 14:29:47.289369-04|2004-04-28 11:40:35|5/04/2004|4/04/2004
2004-04-29 14:29:47.289369-04|2004-04-29 13:26:34|5/04/2004|5/04/2004

thank you!

Troy Campano

#2Andrew Sullivan
ajs@crankycanuck.ca
In reply to: Campano, Troy (#1)
Re: Timestamp problems...wrong weeks.

On Thu, Apr 29, 2004 at 02:42:49PM -0400, Campano, Troy wrote:

This is causing my reports to print out incorrect data.
Do you know why this would happen? Am I doing something wrong?

I think you may be misunderstanding what "W" means:

week of month (1-5) (The first week starts on the first day of the
month.)

In April 2004, 1 April is Thurs, so

1-7 -> W1
8-14 -> W2
15-21 -> W3
22-28 -> W4
29-30 -> W5 == W1 of May

This is also why 8 May is in week 2 of May, but 7 May is on week 1.

A

--
Andrew Sullivan | ajs@crankycanuck.ca

#3Campano, Troy
Troy.Campano@LibertyMutual.com
In reply to: Andrew Sullivan (#2)
Re: Timestamp problems...wrong weeks.

Is there any way with SQL to get what I'm trying to get?
Where (in this month, April):
April 1 - 3 (Week 1)
April 4 - 10 (Week 2)
April 11 - 17 (Week 3)
April 18 - 24 (Week 4)
April 25 - 30 (Week 5)

Thank you!

~ Troy Campano ~

-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Andrew Sullivan
Sent: Thursday, April 29, 2004 3:42 PM
To: Pgsql-General
Subject: Re: [GENERAL] Timestamp problems...wrong weeks.

On Thu, Apr 29, 2004 at 02:42:49PM -0400, Campano, Troy wrote:

This is causing my reports to print out incorrect data.
Do you know why this would happen? Am I doing something wrong?

I think you may be misunderstanding what "W" means:

week of month (1-5) (The first week starts on the first day of the
month.)

In April 2004, 1 April is Thurs, so

1-7 -> W1
8-14 -> W2
15-21 -> W3
22-28 -> W4
29-30 -> W5 == W1 of May

This is also why 8 May is in week 2 of May, but 7 May is on week 1.

A

--
Andrew Sullivan | ajs@crankycanuck.ca

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

#4Jean-Luc Lachance
jllachan@sympatico.ca
In reply to: Andrew Sullivan (#2)
Re: Timestamp problems...wrong weeks.

Personnaly, I think this use of W is useless -- anybody can dewide the
day of the month by 7. A more appropriate use of W might be for the
week number to start with the first week with ALL dates in the month.
An alternate interpretation might be to start with the first week that
has at least one day in the month. The next issue is do you start the
week on Sunday, Saturday or Monday...

JLL

Andrew Sullivan wrote:

Show quoted text

On Thu, Apr 29, 2004 at 02:42:49PM -0400, Campano, Troy wrote:

This is causing my reports to print out incorrect data.
Do you know why this would happen? Am I doing something wrong?

I think you may be misunderstanding what "W" means:

week of month (1-5) (The first week starts on the first day of the
month.)

In April 2004, 1 April is Thurs, so

1-7 -> W1
8-14 -> W2
15-21 -> W3
22-28 -> W4
29-30 -> W5 == W1 of May

This is also why 8 May is in week 2 of May, but 7 May is on week 1.

A

#5DeJuan Jackson
djackson@speedfc.com
In reply to: Campano, Troy (#3)
Re: Timestamp problems...wrong weeks.

Campano, Troy wrote:

Is there any way with SQL to get what I'm trying to get?
Where (in this month, April):
April 1 - 3 (Week 1)
April 4 - 10 (Week 2)
April 11 - 17 (Week 3)
April 18 - 24 (Week 4)
April 25 - 30 (Week 5)

Thank you!

~ Troy Campano ~

-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Andrew Sullivan
Sent: Thursday, April 29, 2004 3:42 PM
To: Pgsql-General
Subject: Re: [GENERAL] Timestamp problems...wrong weeks.

On Thu, Apr 29, 2004 at 02:42:49PM -0400, Campano, Troy wrote:

This is causing my reports to print out incorrect data.
Do you know why this would happen? Am I doing something wrong?

I think you may be misunderstanding what "W" means:

week of month (1-5) (The first week starts on the first day of the
month.)

In April 2004, 1 April is Thurs, so

1-7 -> W1
8-14 -> W2
15-21 -> W3
22-28 -> W4
29-30 -> W5 == W1 of May

This is also why 8 May is in week 2 of May, but 7 May is on week 1.

A

take a look

select date_part('week', CURRENT_DATE) -
date_part('week', date_trunc('month', CURRENT_DATE)) + 1;

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Campano, Troy (#1)
Re: Timestamp problems...wrong weeks.

"Campano, Troy" <Troy.Campano@LibertyMutual.com> writes:

However the data says that April 28th 2004 was in week 4 of April and
that April 29th 2004 was in week 5 of april.
This is incorrect.

This *is* correct according to our published specification for the W
format code:

W week of month (1-5) (The first week starts on the first day of the month.)

Since you haven't defined what behavior you want, it's hard to suggest
alternatives, but have you looked at the WW and IW format codes?

regards, tom lane

#7Andrew Sullivan
ajs@crankycanuck.ca
In reply to: Jean-Luc Lachance (#4)
Re: Timestamp problems...wrong weeks.

On Thu, Apr 29, 2004 at 05:06:00PM -0400, Jean-Luc Lachance wrote:

Personnaly, I think this use of W is useless -- anybody can dewide the
day of the month by 7.

I didn't write the definition of the behaviour, I was just explaining
how it actually works.

A

--
Andrew Sullivan | ajs@crankycanuck.ca