How-To: wpdb Insert Record With Date

date does not take a human readable string. It takes a Unix timestamp. You need to convert that human date to a timestamp with strtotime.

'begin_date'   => date('Y-m-d', strtotime('2012-08-14')),

Of course, there is really no need to convert a YEAR-MONTH-DAY date into a timestamp only to convert it back that a YEAR-MONTH-DAY format.