You can match times with a regular expression, but it's not the best tool for the job. Put all the logic into awk and perform numeric comparisons.
Awk doesn't have specific facilities for manipulating dates. GNU awk offers mktime and strftime as an extension. For the problem as specified, you don't need these extensions, but they might come in handy if your requirements grow more complex.
The “working” script you give is probably not what you meant to write: your second grep call has file names as arguments (*), so it won't read from its standard input. And you don't show sample input either. So I don't know what your requirements are.
Here's some example code that assumes that all log lines begin with a date, and that you want to sum the numbers that appear at the end of the matching lines in all log files. Pass the date in the year, month and day variables and the starting time in hour and minute; the snippet looks for log entries in a 15-minute range that isn't allowed to span to a different day.
awk -vyear=2011 -vmonth=6 -vday=30 -vhour=0 -vminute=15 -vRS='[-: ]+' '
BEGIN {start = hour * 60 + min; stop = start + 15}
{time = $4 * 60 + $5}
$1==day && $2== month && $3==day && start <= time && time <= stop && $NF ~ /^[0-9]+$/ {
sum += $NF
}
END {print sum}'