Richard Fox wrote:
> This question relates to both mysql in general and the mysql++ C++ API in 
>particular, thus the adressing to both lists.
> 
> I have a DateTime object (really a formatted string) say "2002-07-10 11:38:38". I 
>want to subtract some variable number of hours (from 0 to 11) from it. How do I 
>accomplish this in an elegant manner?
> 
> There is quite a bit of logic to handle all the cases where subtracting hours takes 
>the date one day back, which can take the month one month back, which can take the 
>year one year back! And of couse all the months have different lengths so this can be 
>some ugly code. I can do this the hard way, but I was wondering if anyone already has 
>a nice solution.  
> 

Are you going to be doing this often (e.g., dateroll conventions, 
holiday/weekend avoidance). If so, your object should be smarter than 
just keeping the string. E.g., it might want to have a notion of the 
julian date, time in UTC, etc., etc.

Convert the date to struct tm, call mktime(). You now have number of 
seconds since the epoch of 1970. Subtract x-hours * 60 minutes * 60 
seconds. Convert back to a struct tm, and fire off strftime.

Real cheap: make MySql dope it out, and take the network hit,

        SELECT "2002-07-10 11:38:38" - INTERVAL 11 HOUR;


-- 
____               .:.                 ____
Bryan W. Headley - [EMAIL PROTECTED]


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to