I have a MySQL query that uses two different timestamps that can be perceived as an interval of time. I need to implement an extra 25-30% of the difference. For example, if the difference between the times is 30 minutes, I need to request an additional 5 minutes before and 5 minutes after.. Is there a way to not only get the difference between the two time stamps, but then calculate this ‘percentage’ of time to acquire the appropriate interval, all within one statement?
Something like the following, where x is the calculated value.
..
DATE_FORMAT(timestamp1 – INTERVAL x MINUTE,’%m/%d/%Y %r’) AS ‘Start’,
DATE_FORMAT(timestamp2 + INTERVAL x MINUTE,’%m/%d/%Y %r’) AS ‘End’,
..
You have a start timestamp and an end timestamp in the database. You want to add an additional percentage of time to these values, based on the time span between them. In other words, you can’t add or subtract any amount of time without knowing the difference between the two.
So, first you must figure out the time span. I’m going to use minutes as the unit, but use whatever works best for your needs:
So this query stores the difference between the two times plus 25% as a variable named
new_span. Thenew_startandnew_endfields use the variable (converted to seconds and divided in half) to modify the original start/end times. I’m also selecting old_span and the original start/end times, for comparison.Here is sample output: