How to filter views output base on custom field I've created a view listing a content type named foo, it has a custom field 'start_date' which can be left blank.

When a node's start_date field is left blank, it should always show in the listing. When it's populated, and the date is less than the current date - then the node should also be listed.

I've tried to use hook_views_query_alter to do this, but it didn't do what I wanted as it's for changing the query itself.

Which hook should I use?
You can use the Views UI to accomplish this. 

Add two date filters: one of them should filter date fields for "is empty" and the other should filter date fields for "is less than" and choose "Enter relative date" and type "now". 

Then create an "OR" group and drag the two date filters to it. It should look like this: