Note that this is for MS SQL Server - you didn't specify which database.
status is your field that contains new, complete, etc...
DECLARE @dt datetime
SET @dt = GetDate()
SELECT status, COUNT(*) FROM your_table
WHERE your_date_field = CONVERT(datetime, @dt, 104)
GROUP BY status
Note that it would be better to have status table something like
PK code value
----------------------------
10 new New
20 compl Complete
30 inpr In progress
I use code field if I need Enum names or some other no-user-needs-to-see-it task...while value is something to show the user. Number is used for combobox /radio button lists, sorting, etc...
Advantages are
a) you can easily sort by your integer primary key.
b) You can easily add in-between statuses if someone gets new idea.
c) You're not bound to exactly typing the word and worrying about case sensitive comparisons.
d) You can show your user whatever text you want without changing single line of code.
Disadvantage is that you have to link the table if you need the name (or write the function that returns the name for any given PK) - this is what I did :)