If the current database is in a standard format and has a record of the "last access time" for each nick/channel, why not just drop "old" channels/nicks, and then create a separate script that ports the whole database into the new services format, if necessary? At the very least, dropping unused nicknames and channels could help out quite a bit in making the database considerably smaller (and thus easier to transfer to a new format, if desired).
The thing is we already do this via its built in cleaning out of old channels and nicks. There are no records that are stale or stagnant.
The major issue here is that the services package we currently use is old and outdated (read: unsupported for 2+ years). Some things will not import without some severe hacking. We've made several hacks to the database alone to make it work like we want it and porting from one format to another format is a huge time sink. We're looking at making a lot of changes that not only effect Services, but the IRCd. Honestly, there are only so many of us to do this and to spend 2+ weeks tweaking it so the data imports correctly isn't exactly what I would call "time efficient." Not only would this let us start with a clean database, it would also let the channel owners clean out people on their access lists.