Thread: Date problem

Date problem

From
"pauLSiew"
Date:
I'm using pgsql with php, and my query below will retrieve employee's
monthly sales total,

"select sum(salesTotal) from ocf where employeeNo='0123' AND orderDate like
'%$month $year %'" // i put % infront to ignore day, and % at the back to
ignore the time (because i'm using timestamp with timezone), then i shall
get particular month's records.

$month = Feb
$year    = 2002

But i cant retrieve the data,  if i take out the $year, it works...but i
need the year to identify the records.

it works when i do a direct sql query to the pgsql through pg-admin, the
query are like this,
select grand_total,ocf_no,date from ocf where date like '2002-01%' order by
date;

i really confused with the date format......

Anybody got any solution or better idea, pls reply! THANK YOU

Regards,

pauL












Re: Date problem

From
"pauLSiew"
Date:
> > "select sum(salesTotal) from ocf where employeeNo='0123' AND orderDate
like
> > '%$month $year %'" // i put % infront to ignore day, and % at the back
to
>
> How about
> ... like '%$month-$year%' ...
>
>
> > ignore the time (because i'm using timestamp with timezone), then i
shall
> > get particular month's records.
> >
> > $month = Feb
> > $year    = 2002
> >
> > But i cant retrieve the data,  if i take out the $year, it works...but i
> > need the year to identify the records.
> >
> > it works when i do a direct sql query to the pgsql through pg-admin, the
> > query are like this,
> > select grand_total,ocf_no,date from ocf where date like '2002-01%' order
by
>
> Here, you have the dash between month and year ................^
> You also have year and month reversed from above... Could be trouble!
>
it works when i put '%$month%', but this will only retrieve the month, but
any year, cause year din't specified, so i put the $year in like the 1st
query above, it's did not work, then i try all the possible, it dont work
also :(

$month=Feb, not 02





Re: Date problem

From
missive@frontiernet.net (Lee Harr)
Date:
>> > "select sum(salesTotal) from ocf where employeeNo='0123' AND orderDate
> like
>> > '%$month $year %'" // i put % infront to ignore day, and % at the back
> to
>>
>> How about
>> ... like '%$month-$year%' ...
>>

>> > $month = Feb
>> > $year    = 2002
>> >
>> > But i cant retrieve the data,  if i take out the $year, it works...but i
>> > need the year to identify the records.
>> >
>> > it works when i do a direct sql query to the pgsql through pg-admin, the
>> > query are like this,
>> > select grand_total,ocf_no,date from ocf where date like '2002-01%' order
> by
>>
>> Here, you have the dash between month and year ................^
>> You also have year and month reversed from above... Could be trouble!
>>
> it works when i put '%$month%', but this will only retrieve the month, but
> any year, cause year din't specified, so i put the $year in like the 1st
> query above, it's did not work, then i try all the possible, it dont work
> also :(
>


LIKE matches strings, so
LIKE 'aaa%bbb'
would match
aaafdsglkjfdgldsjgbbb
aaabbb
aaa12345678bbb
aaaetcbbb

so if you want to match date strings which look like
...2001-01...
...2001-11...
...2002-03...
...2002-10...

you will need to use
LIKE '%2001-01%'
LIKE '%2001-11%'
LIKE '%2002-03%'
LIKE '%2002-10%'

How you get PHP to make strings like that is left as
an exercise!

HINT: You can crank up the PostgreSQL logging to show
      the queries which are actually being run.