> Hi,
>
> Thank you all for your respons(es)!!
>
> I solved this question
> anymore now): I needed the dhms function to transform
> datetime into date (could also divide by 84600 or
> so).
>
> Thanks for your answers!!
R_Win
when you use functions like dhms() in a where clause, make sure it is really neccessary, because SAS might be unable to pass the function to the platform holding that data and so bring back all the data to the sas session for filtering - a bit like using IF instead of WHERE.
Converting the date constants to datetime constants is not like the problem you might find converting data base values.
where rdbms.date_column between "&sasdate1:0:0:0"dt and "&sasdate2:0:0:0"dt
probably works as well as, if not better than
where rdbms.date_column between dhms("&sasdate1"d,0,0,0) and dhms("&sasdate2",0,0,0)
or this better version (where datetime conversion is done on constants in the macro language layer)
where rdbms.date_column between %sysfunc(dhms("&sasdate1"d,0,0,0)) and %sysfunc( dhms("&sasdate2"d,0,0,0))
and you might not be able to run
where (rdbms.date_column/84600) between "&sasdate1"d and "&sasdate2"d
as some rdbms do not allow normal arithmetic operations like divide, on dates
glad the problem was solved without the dhms() loop
peterC
... View more