java.sql.Timestamps: There's gotta be an easier way
Bug

gc.set(Calendar.HOUR, 59);


I suppose you mean gc.set(Calendar.HOUR, 23); here?

Potential Bug

while (rs.next()) {
    ard = new AssistReportData();
    // ...
}


I suppose this works currently because you only get a single result row, but please be aware that if you have multiple rows, you will simply be re-referencing until the last row of your ResultSet.

Getting dates

All you need is a nice method that converts Date to Timestamp:

// using shortened variable names for brevity
private static Timestamp convertAndReset(Date date, int hr, int min, int sec, int nano) {
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(date);
    calendar.set(Calendar.HOUR, hr);
    calendar.set(Calendar.MINUTE, min);
    calendar.set(Calendar.SECOND, sec);
    Timestamp result = new Timestamp(calendar.getTimeInMillis());
    result.setNanos(nano);
    return result;
}


You can them call it as such:

ps.setInt(1, teamId);
ps.setTimestamp(2, convertAndReset(date, 0, 0, 0, 0));
ps.setTimestamp(3, convertAndReset(date, 23, 59, 59, 0));


Java 8?

If you happen to be on Java 8, then congratulations: the new java.time.* classes ('Time APIs') are much better for chronological representations.

You can then consider rewriting the same method as such:

private static Timestamp convertAndReset(Date date, int hr, int min, int sec, int nano) {
    return Timestamp.valueOf(date.toInstant().atZone(ZoneId.systemDefault())
                                    .toLocalDate().atTime(hr, min, sec, nano));        
}



Convert Date to Instant via Date.toInstant().
Convert to ZonedDateTime via Instant.atZone(ZoneId).
Convert to either a LocalDate or LocalDateTime. Using the former because...
Setting the time via LocalDate.atTime() is arguably more fluent, which gives us a LocalDateTime instance with the desired time in another 'step'.
Finally, call Timestamp.valueOf(LocalDateTime) to get the Timestamp instance.