in reply to Perl Syntax - What's the difference?

Most likely this is because somewhere in your setup/configuration, there is something that tells Moose / DBIC / whatever to map values from a column startdate to DateTime objects. But now the column is named start_date and that list has not been adjusted appropriately.

Alternatively, the column type has changed to something that the hidden magic of Moose / DBIC / whatever cannot determine that you want DateTime objects from what was a date column anymore. Or maybe it's now a timestamp column.

Maybe reducing your zoo of modules to a simple case of one table with two columns, startdate and start_date that still fails to magically inflate one column but magically inflates the other column can help us to give you better advice.