diff -crB a/includes/webform.report.inc b/includes/webform.report.inc
*** a/includes/webform.report.inc	2012-05-17 13:54:34.512936695 -0700
--- b/includes/webform.report.inc	2012-05-17 13:35:45.460970055 -0700
***************
*** 411,417 ****
        'all' => t('All submissions'),
        'new' => t('Only new submissions since your last download'),
        'latest' => t('Only the latest'),
!       'range' => t('All submissions starting from'),
      ),
      '#default_value' => 'all',
    );
--- 411,418 ----
        'all' => t('All submissions'),
        'new' => t('Only new submissions since your last download'),
        'latest' => t('Only the latest'),
!       'range' => t('All submissions by ID starting from'),
!       'date' => t('All submissions by date starting from'),
      ),
      '#default_value' => 'all',
    );
***************
*** 435,440 ****
--- 436,461 ----
      '#description' => '',
    );
  
+   $form['range']['start_date'] = array(
+     '#type' => 'date',
+   );
+   $form['range']['start_time'] = array(
+     '#type' => 'textfield',
+     '#size' => 8,
+     '#maxlength' => 8,
+     '#default_value' => '00:00:00',
+   );
+   $form['range']['end_date'] = array(
+     '#type' => 'date',
+   );
+   $form['range']['end_time'] = array(
+     '#type' => 'textfield',
+     '#size' => 8,
+     '#maxlength' => 8,
+     '#default_value' => '23:59:59',
+   );
+   
+ 
    // By default results are downloaded. User can override this value if
    // programmatically submitting this form.
    $form['download'] = array(
***************
*** 504,509 ****
--- 525,550 ----
          }
        }
        break;
+     case 'date':
+       // Start submission time.
+       if ($element['start_time']['#value'] == '') {
+         form_error($element['start_time'], t('Start submission time is required.'));
+       }
+       else{
+         if (!preg_match("([0-9]{2}:[0-9]{2}:[0-9]{2})", $element['start_time']['#value'])) {
+           form_error($element['start_time'], t('Start submission time must be in the form HH:MM:SS using a 24-hr time format.'));
+         }
+       }
+       // End submission time.
+       if ($element['end_time']['#value'] == '') {
+         form_error($element['end_time'], t('End submission time is required.'));
+       }
+       else{
+         if (!preg_match("([0-9]{2}:[0-9]{2}:[0-9]{2})", $element['end_time']['#value'])) {
+           form_error($element['end_time'], t('End submission time must be in the form HH:MM:SS using a 24-hr time format.'));
+         }
+       }
+       break;
    }
  
  }
***************
*** 526,540 ****
      $options['sids'] = webform_download_sids($form_state['values']['node']->nid, $form_state['values']['range']);
    }
  
!   $export_info = webform_results_export($form_state['values']['node'], $form_state['values']['format'], $options);
  
!   // If webform result file should be downloaded, send the file to the browser,
!   // otherwise save information about the created file in $form_state.
!   if ($options['download']) {
!     webform_results_download($form_state['values']['node'], $export_info);
    }
    else {
!     $form_state['export_info'] = $export_info;
    }
  }
  
--- 567,586 ----
      $options['sids'] = webform_download_sids($form_state['values']['node']->nid, $form_state['values']['range']);
    }
  
!   if (count($options['sids']) > 0 || $options['range_type'] == 'all') {
!     $export_info = webform_results_export($form_state['values']['node'], $form_state['values']['format'], $options);
  
!     // If webform result file should be downloaded, send the file to the browser,
!     // otherwise save information about the created file in $form_state.
!     if ($options['download']) {
!       webform_results_download($form_state['values']['node'], $export_info);
!     }
!     else {
!       $form_state['export_info'] = $export_info;
!     }
    }
    else {
!     drupal_set_message("No records to download for the options selected", 'warning');
    }
  }
  
***************
*** 592,604 ****
    // Render Start-End submissions option.
    $element['start']['#attributes']['class'] = array('webform-set-active');
    $element['end']['#attributes']['class'] = array('webform-set-active');
    $element['range_type']['range']['#theme_wrappers'] = array('webform_inline_radio');
!   $element['range_type']['range']['#inline_element'] = t('All submissions starting from: !start and optionally to: !end', array('!start' => drupal_render($element['start']), '!end' => drupal_render($element['end'])));
    $element['range_type']['range']['#title'] = NULL;
  
    $last_sid = $download_info['sid'] ? $download_info['sid'] : drupal_placeholder(t('none'));
    $element['range_type']['range']['#description'] = '(' . t('Use submission IDs for the range. Last downloaded end SID: !sid.', array('!sid' => $last_sid)) . ')';
  
    return drupal_render_children($element);
  }
  
--- 638,660 ----
    // Render Start-End submissions option.
    $element['start']['#attributes']['class'] = array('webform-set-active');
    $element['end']['#attributes']['class'] = array('webform-set-active');
+   $element['start_date']['#attributes']['class'] = array('webform-set-active');
+   $element['end_date']['#attributes']['class'] = array('webform-set-active');
+   $element['start_time']['#attributes']['class'] = array('webform-set-active');
+   $element['end_time']['#attributes']['class'] = array('webform-set-active');
    $element['range_type']['range']['#theme_wrappers'] = array('webform_inline_radio');
!   $element['range_type']['range']['#inline_element'] = t('All submissions by ID starting from: !start and optionally to: !end', array('!start' => drupal_render($element['start']), '!end' => drupal_render($element['end'])));
    $element['range_type']['range']['#title'] = NULL;
  
    $last_sid = $download_info['sid'] ? $download_info['sid'] : drupal_placeholder(t('none'));
    $element['range_type']['range']['#description'] = '(' . t('Use submission IDs for the range. Last downloaded end SID: !sid.', array('!sid' => $last_sid)) . ')';
  
+   // date range
+   $element['range_type']['date']['#theme_wrappers'] = array('webform_inline_radio');
+   $element['range_type']['date']['#inline_element'] = t('All submissions by Date starting from: !start_date !start_time   to: !end_date !end_time', array('!start_date' => drupal_render($element['start_date']), '!start_time' => drupal_render($element['start_time']), '!end_date' => drupal_render($element['end_date']), '!end_time' => drupal_render($element['end_time'])));
+   $element['range_type']['date']['#title'] = NULL;
+   $element['range_type']['date']['#description'] = '(' . t('Use 24-hr time format') . ')';
+   
    return drupal_render_children($element);
  }
  
***************
*** 962,967 ****
--- 1018,1041 ----
        }
        $query->orderBy('sid', 'ASC');
        break;
+     case 'date':
+       // Submissions by timestamp
+       $start_time_stamp = strtotime(
+         $range_options['start_date']['year'] . '-' . 
+         $range_options['start_date']['month'] . '-' . 
+         $range_options['start_date']['day'] . ' ' .
+         $range_options['start_time']
+       );
+       $end_time_stamp = strtotime(
+         $range_options['end_date']['year'] . '-' . 
+         $range_options['end_date']['month'] . '-' . 
+         $range_options['end_date']['day'] . ' ' .
+         $range_options['end_time']
+       );
+       $query->condition('submitted', $start_time_stamp, '>=');
+       $query->condition('submitted', $end_time_stamp, '<=');
+       $query->orderBy('sid', 'ASC');
+       break;
    }
  
    $sids = $query->execute()->fetchCol();
