Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj	(revision 7573)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj	(revision 7574)
@@ -147,4 +147,7 @@
     <Compile Include="Query\DataTransfer\BoolValue.cs" />
     <Compile Include="Query\DataTransfer\CombinedFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameOrdinalComparisonTimeSpanFilter.cs" />
+    <Compile Include="Query\DataTransfer\OrdinalComparisonTimeSpanFilter.cs" />
+    <Compile Include="Query\DataTransfer\TimeSpanValue.cs" />
     <Compile Include="Query\DataTransfer\OrdinalComparisonPercentFilter.cs" />
     <Compile Include="Query\DataTransfer\NameOrdinalComparisonPercentFilter.cs" />
@@ -195,4 +198,5 @@
     <Compile Include="Query\Filters\BoolValueFilter.cs" />
     <Compile Include="Query\Filters\BinaryValueFilter.cs" />
+    <Compile Include="Query\Filters\TimeSpanValueFilter.cs" />
     <Compile Include="Query\Filters\PercentValueFilter.cs" />
     <Compile Include="Query\Filters\StringValueFilter.cs" />
@@ -237,4 +241,5 @@
     <Compile Include="RunCreation\DataTransfer\BinaryValue.cs" />
     <Compile Include="RunCreation\DataTransfer\BoolValue.cs" />
+    <Compile Include="RunCreation\DataTransfer\TimeSpanValue.cs" />
     <Compile Include="RunCreation\DataTransfer\PercentValue.cs" />
     <Compile Include="RunCreation\DataTransfer\DataType.cs" />
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Convert.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Convert.cs	(revision 7573)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Convert.cs	(revision 7574)
@@ -56,4 +56,6 @@
       } else if (source.ValueName.Type == DA.ValueNameType.Int) {
         return new DT.IntValue { Name = source.ValueName.Name, DataType = Convert.ToDto(source.DataType), Value = source.IntValue.GetValueOrDefault() };
+      } else if (source.ValueName.Type == DA.ValueNameType.TimeSpan) {
+        return new DT.TimeSpanValue { Name = source.ValueName.Name, DataType = Convert.ToDto(source.DataType), Value = source.LongValue.GetValueOrDefault() };
       } else if (source.ValueName.Type == DA.ValueNameType.Long) {
         return new DT.LongValue { Name = source.ValueName.Name, DataType = Convert.ToDto(source.DataType), Value = source.LongValue.GetValueOrDefault() };
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Filter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Filter.cs	(revision 7573)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Filter.cs	(revision 7574)
@@ -36,4 +36,5 @@
   [KnownType(typeof(NameOrdinalComparisonIntFilter))]
   [KnownType(typeof(NameOrdinalComparisonLongFilter))]
+  [KnownType(typeof(NameOrdinalComparisonTimeSpanFilter))]
   [KnownType(typeof(NameStringComparisonFilter))]
   [KnownType(typeof(NameStringComparisonAvailableValuesFilter))]
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonTimeSpanFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonTimeSpanFilter.cs	(revision 7574)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonTimeSpanFilter.cs	(revision 7574)
@@ -0,0 +1,35 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameOrdinalComparisonTimeSpanFilter : OrdinalComparisonTimeSpanFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+
+    public NameOrdinalComparisonTimeSpanFilter(string filterTypeName, string label, string name)
+      : base(filterTypeName, label) {
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonTimeSpanFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonTimeSpanFilter.cs	(revision 7574)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonTimeSpanFilter.cs	(revision 7574)
@@ -0,0 +1,35 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class OrdinalComparisonTimeSpanFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public long Value { get; set; }
+
+    public OrdinalComparisonTimeSpanFilter(string filterTypeName, string label) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/TimeSpanValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/TimeSpanValue.cs	(revision 7574)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/TimeSpanValue.cs	(revision 7574)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class TimeSpanValue : Value {
+    [DataMember]
+    public long Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Value.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Value.cs	(revision 7573)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Value.cs	(revision 7574)
@@ -32,4 +32,5 @@
   [KnownType(typeof(BinaryValue))]
   [KnownType(typeof(PercentValue))]
+  [KnownType(typeof(TimeSpanValue))]
   public abstract class Value {
     [DataMember]
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/TimeSpanValueFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/TimeSpanValueFilter.cs	(revision 7574)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/TimeSpanValueFilter.cs	(revision 7574)
@@ -0,0 +1,65 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+using System.Linq.Expressions;
+using HeuristicLab.Services.OKB.DataAccess;
+
+namespace HeuristicLab.Services.OKB.Query.Filters {
+  public class TimeSpanValueFilter : IFilter {
+    public string Name { get; protected set; }
+    public DataTransfer.OrdinalComparison Comparison { get; set; }
+    public long Value { get; set; }
+
+    public Expression<Func<Run, bool>> Expression {
+      get {
+        switch (Comparison) {
+          case DataTransfer.OrdinalComparison.Less:
+            return x => x.Values.Any(y => (y.ValueName.Name == Name) && (y.LongValue < Value));
+          case DataTransfer.OrdinalComparison.LessOrEqual:
+            return x => x.Values.Any(y => (y.ValueName.Name == Name) && (y.LongValue <= Value));
+          case DataTransfer.OrdinalComparison.Equal:
+            return x => x.Values.Any(y => (y.ValueName.Name == Name) && (y.LongValue == Value));
+          case DataTransfer.OrdinalComparison.GreaterOrEqual:
+            return x => x.Values.Any(y => (y.ValueName.Name == Name) && (y.LongValue >= Value));
+          case DataTransfer.OrdinalComparison.Greater:
+            return x => x.Values.Any(y => (y.ValueName.Name == Name) && (y.LongValue > Value));
+          case DataTransfer.OrdinalComparison.NotEqual:
+            return x => x.Values.Any(y => (y.ValueName.Name == Name) && (y.LongValue != Value));
+          default:
+            return x => true;
+        }
+      }
+    }
+
+    public TimeSpanValueFilter(string name, DataTransfer.OrdinalComparison comparison, long value) {
+      Name = name;
+      Comparison = comparison;
+      Value = value;
+    }
+    public TimeSpanValueFilter(DataTransfer.NameOrdinalComparisonTimeSpanFilter filter) {
+      Name = filter.Name;
+      Comparison = filter.Comparison;
+      Value = filter.Value;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/QueryService.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/QueryService.cs	(revision 7573)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/QueryService.cs	(revision 7574)
@@ -75,4 +75,10 @@
             name
           ));
+        foreach (string name in okb.ValueNames.Where(x => (x.Category == ValueNameCategory.Parameter) && (x.Type == ValueNameType.TimeSpan)).Select(x => x.Name).Distinct())
+          filters.Add(new NameOrdinalComparisonTimeSpanFilter(
+            typeof(TimeSpanValueFilter).AssemblyQualifiedName,
+            "Parameter " + name + " Value",
+            name
+          ));
         foreach (string name in okb.ValueNames.Where(x => (x.Category == ValueNameCategory.Parameter) && (x.Type == ValueNameType.Float)).Select(x => x.Name).Distinct())
           filters.Add(new NameOrdinalComparisonFloatFilter(
@@ -138,4 +144,10 @@
             name
           ));
+        foreach (string name in okb.ValueNames.Where(x => (x.Category == ValueNameCategory.Result) && (x.Type == ValueNameType.TimeSpan)).Select(x => x.Name).Distinct())
+          filters.Add(new NameOrdinalComparisonTimeSpanFilter(
+            typeof(TimeSpanValueFilter).AssemblyQualifiedName,
+            "Result " + name + " Value",
+            name
+          ));
         foreach (string name in okb.ValueNames.Where(x => (x.Category == ValueNameCategory.Result) && (x.Type == ValueNameType.Float)).Select(x => x.Name).Distinct())
           filters.Add(new NameOrdinalComparisonFloatFilter(
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/Convert.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/Convert.cs	(revision 7573)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/Convert.cs	(revision 7574)
@@ -77,4 +77,7 @@
         entity.ValueName = Convert.ToEntity(source.Name, category, DA.ValueNameType.Int, okb);
         entity.IntValue = ((DT.IntValue)source).Value;
+      } else if (source is DT.TimeSpanValue) {
+        entity.ValueName = Convert.ToEntity(source.Name, category, DA.ValueNameType.TimeSpan, okb);
+        entity.LongValue = ((DT.TimeSpanValue)source).Value;
       } else if (source is DT.LongValue) {
         entity.ValueName = Convert.ToEntity(source.Name, category, DA.ValueNameType.Long, okb);
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/DataTransfer/TimeSpanValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/DataTransfer/TimeSpanValue.cs	(revision 7574)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/DataTransfer/TimeSpanValue.cs	(revision 7574)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.RunCreation.DataTransfer {
+  [DataContract]
+  public class TimeSpanValue : Value {
+    [DataMember]
+    public long Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/DataTransfer/Value.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/DataTransfer/Value.cs	(revision 7573)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/RunCreation/DataTransfer/Value.cs	(revision 7574)
@@ -32,4 +32,5 @@
   [KnownType(typeof(BinaryValue))]
   [KnownType(typeof(PercentValue))]
+  [KnownType(typeof(TimeSpanValue))]
   public abstract class Value {
     [DataMember]
