Hello out there.
I have a problem with dates in my database. When I want to compare if a
date is inside or outside a given time-period I dont get the expected results.
Using "bigger than date1 AND smaller than date2" (for detailed syntax, see
example below) I dont get the right result.
The only comparison that works is if the dates compared are checked for
equality.
Example:
I have a test table "Period" with 4 rows of data. The rows looks like this:
Period_id
Start_tid
Stopp_tid
Resurs_id Uppdrag_id
1000
2000-08-01
2000-08-15
1000 1000
1001
2000-08-03
2000-08-14
1001 1001
1002
2000-10-01
2000-10-05
1000 1001
1003
2000-10-06
2000-10-10
1001 1001
My Sample script looks like this.
e DROP TABLE Period;
e CREATE TABLE Period
(Period_id
INT PRIMARY KEY AUTO INCREMENT,
Start_tid DATE,
Stopp_tid DATE,
Resurs_id INT,
Uppdrag_id INT);
The mission is: I want all "Resurs_id" that have periods
overlap my new period "Tillg_f" -> "Tillg_t"
This is my debug results coming out of my servlet application.
Debug info for
com.gefionsoftware.instantonline.basic.DBCollectServlet
Database call
info
SQL statement:
SELECT DISTINCT Resurs_id FROM Period WHERE Start_tid > {d '2000-07-07'}
AND {d '2000-07-10'} > Stopp_tid
Number of rows
read/modified: 2
Request
parameters
result:
Resurs_id.Lista_pa
columns:
DISTINCT Resurs_id
debug:
true
condition:
Start_tid > $session|Resurs_sok.prio_1_pa(Tillg_f)||date$ AND
$session|Resurs_sok.prio_1_pa(Tillg_t)||date$ > Stopp_tid
dbname:
db_pa
table:
Period
runif:
$session|Resurs_sok.prio_1_pa(Kat)$ = 2
As you can see the database found 2 "Resurs_id" there it shuld be none. It
seems like the expr. with " > " doesn't work. When I test with " = " it
seems to work and when I test the expr. one and one it also works. My
version of instantdb is 2.41..
Can anyone help me?
Regards!!
// Kenneth Ericsson
MindProxy AB Sweden.