create a boelean field (checkbox) and add it to the form. Create a DB rule to update the value of actual start with the value of planned start. Set the condition of the ruel to fire when the check box is ticked.
Once in place do an update all on all records or just closed records and update the check box to a tick. Once the update all sarts to run the DB rule will run also.
I would recommend testing testing these type of updates in a small controlled batch first to ensure it all works smoothly.
Which ever way you choose will be work, but if I were you I'd make sure to set up a UI Rule to automagically fill in the actual start time when say the status is changed from registered/new to assigned w/ a body attached to it or whatever your process requires. This way you don't have to worry about doing this update again.
Here is what I use: When a value has changed where Assignment;To person (*) is anything AND Status equals Registered/New Update Assignment status (Update Data) Status set to Assigned, initial response(aka actual start) update (Update Data) Initial Response set to (Current date)
Reasoning: when call is taken, techs are required to diagnos issue and try to fix, which in my opinion is a first attempt at a fix regardless of the group who actually fixes the issue. It is also a process from the human side that should be addressed, my techs know that when they start work on any request (change, incident, etc) to fill in the initial response date (aka actual start, change name in field text)if non has been entered at that point.
Again this rule (UI) only fires when the status has changed and the item is assigned to a specific individual. otherwise the field is blank until assigned.