Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 10696)
+++ /trunk/ippTools/src/dettool.c	(revision 10697)
@@ -604,5 +604,40 @@
             }
         }
-    }
+
+        psString dateobs_begin = psMetadataLookupStr(&status, config->args, "-dateobs_begin");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -set_use_end");
+            psFree(where);
+            return false;
+        }
+        if (dateobs_begin) {
+            psTime *time = psTimeFromISO(dateobs_begin, PS_TIME_UTC);
+            if (!psMetadataAddTime(where, PS_LIST_TAIL, "dateobs", 0, ">=", time)) {
+                psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+                psFree(time);
+                psFree(where);
+                return false;
+            }
+            psFree(time);
+        }
+
+        psString dateobs_end = psMetadataLookupStr(&status, config->args, "-dateobs_end");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -set_use_end");
+            psFree(where);
+            return false;
+        }
+        if (dateobs_end) {
+            psTime *time = psTimeFromISO(dateobs_end, PS_TIME_UTC);
+            if (!psMetadataAddTime(where, PS_LIST_TAIL, "dateobs", 0, "<", time)) {
+                psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+                psFree(time);
+                psFree(where);
+                return false;
+            }
+            psFree(time);
+        }
+    }
+
     if (!psListLength(where->list)) {
         psFree(where);
@@ -736,9 +771,17 @@
     // make sure that we found at least one rawDetrendExp
     if (!detrendExps) {
-        psError(PS_ERR_UNKNOWN, false, "no rawDetrendExp rows found");
+        psError(PS_ERR_UNKNOWN, false, "database error");
         psFree(registered);
         psFree(use_begin);
         psFree(use_end);
         return false;
+    }
+    if (!psArrayLength(detrendExps)) {
+        psError(PS_ERR_UNKNOWN, true, "no rawDetrendExp rows found");
+        psFree(detrendExps);
+        psFree(registered);
+        psFree(use_begin);
+        psFree(use_end);
+        return true;
     }
 
Index: /trunk/ippTools/src/dettoolConfig.c
===================================================================
--- /trunk/ippTools/src/dettoolConfig.c	(revision 10696)
+++ /trunk/ippTools/src/dettoolConfig.c	(revision 10697)
@@ -109,4 +109,8 @@
     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-uri",  0,
             "search for uri", NULL);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-dateobs_begin", 0,
+            "define start (>=) of included exposure peroid", NULL);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-dateobs_end", 0,
+            "define end (<) of included exposure peroid", NULL);
     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_exp_type",  0,
             "define exposure type", NULL);
