Date comparison...database query

I have a form which passes 3 values (day, month, year).

I concat. the 3 values together..

$sdate = sdate_dd + "-" + sdate_mm + "-" + sdate_yy;

how can I do a SQL query to retrieve records less than this date? I am using ORacle database.

my current query is as follows:
==
$query = "select * from tableA where sdate < $sdate";
==

but it complains with the following message
==
OCIStmtExecute: ORA-01861: literal does not match format string
===
LVL 3
slokAsked:
Who is Participating?
 
DarthModConnect With a Mentor Commented:
Submitted to PAQ with points refunded (50)

DarthMod
Community Support Moderator
0
 
andreifCommented:
maybe you shoud better ask this in Oracle topic?
0
 
us111Commented:
oracle format is :
YYYY-MM-DD
so try
$sdate = sdate_yy."-".sdate_mm."-".sdate_dd;
0
 
Richard QuadlingSenior Software DeveloperCommented:
You should also check to make sure that the century is present in the year.

If you have a form with this in then you could ask for the century as a seperate field (select 19 and 20) and year (select 00 to 99).

Richard.
0
 
slokAuthor Commented:
I found the answer.

Apparently, when constructing the query statement in PHP, I need to insert quotes for the date variable and also make use of the to_date function

eg
===
$query = "select * from tableA where sdate < to_date('$sdate', 'dd-mm-yyyy')";
==

Note: take note of the single quotes around $sdate and also the use of to_date function.


Thanks all for the help. I will delete this question in one week's time.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.