The schema for both MySQL and Postgres use a default value of '0000-00-00 00:00:00' for all timestamp fields.
Sadly matching this default value is throwing runtime errors in at least Postgres 8.0.13, as in this example trying to look up the destination for a DID call:
a2b=> SELECT cc_did.id, cc_did_destination.id, billingtype, tariff, destination, voip_call, username FROM cc_did, cc_did_destination, cc_card WHERE id_cc_did=cc_did.id and cc_card.id=id_cc_card and cc_did_destination.activated=1 and cc_did.activated=1 and did='44xxxxxxxxxx' AND cc_did.startingdate<= CURRENT_TIMESTAMP AND (cc_did.expirationdate > CURRENT_TIMESTAMP OR cc_did.expirationdate IS NULL OR cc_did.expirationdate = '0000-00-00 00:00:00') ORDER BY priority ASC;
ERROR: date/time field value out of range: "0000-00-00 00:00:00"
HINT: Perhaps you need a different "datestyle" setting.
Trying various 'datestyle' settings didn't make Postgres any happier.
May I suggest changing the DEFAULT for all these fields to be '0000-01-01 00:00:00', which can be parsed as a valid date.