• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 273
  • Last Modified:

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
===
0
slok
Asked:
slok
1 Solution
 
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 DeverloperCommented:
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
 
DarthModCommented:
Submitted to PAQ with points refunded (50)

DarthMod
Community Support Moderator
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now