Index: wp-admin/includes/export.php
===================================================================
--- wp-admin/includes/export.php	(revision 19967)
+++ wp-admin/includes/export.php	(working copy)
@@ -65,16 +65,14 @@
 		}
 	}
 
-	if ( 'post' == $args['content'] || 'page' == $args['content'] ) {
-		if ( $args['author'] )
-			$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_author = %d", $args['author'] );
+	if ( $args['author'] )
+		$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_author = %d", $args['author'] );
 
-		if ( $args['start_date'] )
-			$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date >= %s", date( 'Y-m-d', strtotime($args['start_date']) ) );
+	if ( $args['start_date'] )
+		$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date >= %s", date( 'Y-m-d', strtotime($args['start_date']) ) );
 
-		if ( $args['end_date'] )
-			$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date < %s", date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date'])) ) );
-	}
+	if ( $args['end_date'] )
+		$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date < %s", date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date'])) ) );
 
 	// grab a snapshot of post IDs, just in case it changes during the export
 	$post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} $join WHERE $where" );
Index: wp-admin/export.php
===================================================================
--- wp-admin/export.php	(revision 19967)
+++ wp-admin/export.php	(working copy)
@@ -23,10 +23,11 @@
 	jQuery(document).ready(function($){
  		var form = $('#export-filters'),
  			filters = form.find('.export-filters');
- 		filters.hide();
+ 		filters.not('#all-filters').hide();
  		form.find('input:radio').change(function() {
 			filters.slideUp('fast');
 			switch ( $(this).val() ) {
+				case 'all'  : $('#all-filters').slideDown(); break;
 				case 'posts': $('#post-filters').slideDown(); break;
 				case 'pages': $('#page-filters').slideDown(); break;
 			}
@@ -56,6 +57,11 @@
 
 	if ( ! isset( $_GET['content'] ) || 'all' == $_GET['content'] ) {
 		$args['content'] = 'all';
+
+		if ( $_GET['all_start_date'] || $_GET['all_end_date'] ) {
+			$args['start_date'] = $_GET['all_start_date'];
+			$args['end_date'] = $_GET['all_end_date'];
+		}
 	} else if ( 'posts' == $_GET['content'] ) {
 		$args['content'] = 'post';
 
@@ -98,10 +104,14 @@
 function export_date_options( $post_type = 'post' ) {
 	global $wpdb, $wp_locale;
 
+	$post_type_clause = '';
+	if ( 'all' != $post_type )
+		$post_type_clause = $wpdb->prepare( 'post_type = %s AND', $post_type );
+
 	$months = $wpdb->get_results( $wpdb->prepare( "
 		SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month
 		FROM $wpdb->posts
-		WHERE post_type = %s AND post_status != 'auto-draft'
+		WHERE $post_type_clause post_status != 'auto-draft'
 		ORDER BY post_date DESC
 	", $post_type ) );
 
@@ -132,6 +142,19 @@
 <input type="hidden" name="download" value="true" />
 <p><label><input type="radio" name="content" value="all" checked="checked" /> <?php _e( 'All content' ); ?></label>
 <span class="description"><?php _e( 'This will contain all of your posts, pages, comments, custom fields, terms, navigation menus and custom posts.' ); ?></span></p>
+<ul id="all-filters" class="export-filters">
+	<li>
+		<label><?php _e( 'Date range:' ); ?></label>
+		<select name="all_start_date">
+			<option value="0"><?php _e( 'Start Date' ); ?></option>
+			<?php export_date_options( 'all' ); ?>
+		</select>
+		<select name="all_end_date">
+			<option value="0"><?php _e( 'End Date' ); ?></option>
+			<?php export_date_options( 'all' ); ?>
+		</select>
+	</li>
+</ul>
 
 <p><label><input type="radio" name="content" value="posts" /> <?php _e( 'Posts' ); ?></label></p>
 <ul id="post-filters" class="export-filters">
