Which should I use on my DB? - Clustered Index or Non Clustered Index or Both
A primary key will enforce uniqueness in your data, which is almost always highly desired.  One of the issues you'll run into if you allow yourself to have multiple copies of the same record is that any results you have will be skewed to the point of being unusable for many purposes.  Also, this will happen, no matter how much you try to say it won't.  You can either use a primary key or a unique index for this purpose, and a primary key in SQL Server, by default on a table without a clustered index, will create a unique clustered index.

The rule of "clustered index is not a good choice on columns that undergo frequent changes" is misquoted here.  You appear to have records that have a static value for date, you're just adding more records every day that have a new date field.  

The date field is actually perfect as the first key field of your clustered index for a couple reasons.  It's added in order, so inserts will be quicker and cause less fragmentation.  Also, you always query by it, so queries will be able to take advantage of it.  Just add the key columns to the clustered index until you can make it unique and make it a unique index (primary key is optional, but preferred).

What the clustered index is going to do for you is actually store the data sorted by the key fields.  A phone book is nothing more than a clustered index with the first key field of "Last Name", and you're able to find the person you're looking for very quickly.  In your case, you're adding data according to the date making it easy for SQL Server to keep it sorted this way, then you're querying by the date making it so SQL Server can find the rows in question as quickly and efficiently as you look up names in the phone book.

To learn more about indexes, you can read my blog post on the topic here: http://simplesqlserver.com/2013/11/20/indexing-fundamentals/