Subject | SQL conundrum |
---|---|
Author | Clay Shannon |
Post date | 2005-04-07T21:46:29Z |
I am trying to allow the user to select both a date range AND a time range
within each date.
IOW, they might select 4/1/2005 to 4/7/2005, but just want to look at "swing
shift".
This sql (in DB WB):
select e.fullname, d.deptname, p.dayofweek, p.pchin, p.pchinloc, p.pchout,
p.pchoutloc
from pchup p
join empinfo e on e.empno = p.empno
join dept d on d.deptno = p.pchdept
where (id > 305)
and cast(p.PCHIN as date) between '2005/4/1' and '2005/4/7'
and cast(p.PCHIN as time) between '12:00:00 am' and '11:59:00 pm'
--gives the err msg "conversion error from string "11:59:00 pm"".
If '11:59:00 pm' is wrong, why is '12:00:00 am' accepted?
==================
In my app (Delphi 7), the "same" SQL:
select e.fullname, d.deptname, p.dayofweek, p.pchin, p.pchinloc, p.pchout,
p.pchoutloc from pchup
p join empinfo e on e.empno = p.empno join dept d on d.deptno = p.pchdept
where (id > 305) and
cast (p.PCHIN as date) between :FromDate and :ToDate
and cast (p.PCHIN as time) between :FromTime and :ToTime
with these params (FIB+ component):
FIBDataset.ParamByName('FromDate').AsDate := Trunc(dtpDateFrom.Date);
FIBDataset.ParamByName('ToDate').AsDate := Trunc(dtpDateTo.Date);
FIBDataset.ParamByName('FromTime').AsTime := Frac(dtpTimeFrom.Date);
FIBDataset.ParamByName('ToDate').AsTime := Frac(dtpTimeTo.Date);
gives err msg "Incompatible column/host variable data type. SQL error code
-303. Conversion error from string 1899-12-30" and then ""Incompatible
column/host variable data type. SQL error code -303. Conversion error from
string 23:59:00.0000"
Why am I getting these explosions, and more importantly still, what do I
need to get the results I so strongly desire?
Clay Shannon,
Dimension 4 Software
[Non-text portions of this message have been removed]
within each date.
IOW, they might select 4/1/2005 to 4/7/2005, but just want to look at "swing
shift".
This sql (in DB WB):
select e.fullname, d.deptname, p.dayofweek, p.pchin, p.pchinloc, p.pchout,
p.pchoutloc
from pchup p
join empinfo e on e.empno = p.empno
join dept d on d.deptno = p.pchdept
where (id > 305)
and cast(p.PCHIN as date) between '2005/4/1' and '2005/4/7'
and cast(p.PCHIN as time) between '12:00:00 am' and '11:59:00 pm'
--gives the err msg "conversion error from string "11:59:00 pm"".
If '11:59:00 pm' is wrong, why is '12:00:00 am' accepted?
==================
In my app (Delphi 7), the "same" SQL:
select e.fullname, d.deptname, p.dayofweek, p.pchin, p.pchinloc, p.pchout,
p.pchoutloc from pchup
p join empinfo e on e.empno = p.empno join dept d on d.deptno = p.pchdept
where (id > 305) and
cast (p.PCHIN as date) between :FromDate and :ToDate
and cast (p.PCHIN as time) between :FromTime and :ToTime
with these params (FIB+ component):
FIBDataset.ParamByName('FromDate').AsDate := Trunc(dtpDateFrom.Date);
FIBDataset.ParamByName('ToDate').AsDate := Trunc(dtpDateTo.Date);
FIBDataset.ParamByName('FromTime').AsTime := Frac(dtpTimeFrom.Date);
FIBDataset.ParamByName('ToDate').AsTime := Frac(dtpTimeTo.Date);
gives err msg "Incompatible column/host variable data type. SQL error code
-303. Conversion error from string 1899-12-30" and then ""Incompatible
column/host variable data type. SQL error code -303. Conversion error from
string 23:59:00.0000"
Why am I getting these explosions, and more importantly still, what do I
need to get the results I so strongly desire?
Clay Shannon,
Dimension 4 Software
[Non-text portions of this message have been removed]