What is your database platform?
In MS SQL you will do it like this ...
create table dbo.MyData (
Adjustment varchar(50) NOT NULL,
BaseDate datetime NOT NULL
) on [primary]
go
insert into dbo.MyData ( Adjustment, BaseDate ) values ( '05:30:00', cast('2011-07-22 14:51:00' as datetime) )
insert into dbo.MyData ( Adjustment, BaseDate ) values ( '-2:15:00', cast('2011-06-12 10:27:30' as datetime) )
go
select
c.Adjustment,
c.BaseDate,
c.AdjSecs,
dateadd(s, c.AdjSecs, c.BaseDate ) as AdjustedDate
from (
select
case
when left( Adjustment, 1 ) = '-' then -1 * datediff(s, 0, right( Adjustment, len(Adjustment) - 1 ))
else datediff(s, 0, right( Adjustment, len(Adjustment) - 1 ))
end as AdjSecs,
Adjustment,
BaseDate
from dbo.MyData
) as c
Note. It also takes into account negative adjustment periods.
source
share