--- a/src/core-impl/collections/support/TextualQueryFilter.cpp
+++ b/src/core-impl/collections/support/TextualQueryFilter.cpp
@@ -292,13 +292,13 @@ Collections::semanticDateTimeParser( con
     }
     else if( text.contains(shortDateReg) )
     {
-        result = QDateTime( QDate( QDate::currentDate().year(), shortDateReg.cap(2).toInt(), shortDateReg.cap(1).toInt() ) );
+        result = QDate( QDate::currentDate().year(), shortDateReg.cap(2).toInt(), shortDateReg.cap(1).toInt() ).startOfDay();
         if( absolute )
             *absolute = true;
     }
     else if( text.contains(longDateReg) )
     {
-        result = QDateTime( QDate( longDateReg.cap(3).toInt(), longDateReg.cap(2).toInt(), longDateReg.cap(1).toInt() ) );
+        result = QDate( longDateReg.cap(3).toInt(), longDateReg.cap(2).toInt(), longDateReg.cap(1).toInt() ).startOfDay();
         if( absolute )
             *absolute = true;
     }
--- a/src/core/meta/support/MetaUtility.cpp
+++ b/src/core/meta/support/MetaUtility.cpp
@@ -230,7 +230,7 @@ Meta::Field::mpris20MapFromTrack( const
             map[QStringLiteral("xesam:composer")] = QStringList() << composer->name();
 
         if( year )
-            map[QStringLiteral("xesam:contentCreated")] = QDateTime(QDate(year->year(), 1, 1)).toString(Qt::ISODate);
+            map[QStringLiteral("xesam:contentCreated")] = QDate(year->year(), 1, 1).startOfDay().toString(Qt::ISODate);
 
         if( track->discNumber() )
             map[QStringLiteral("xesam:discNumber")] = track->discNumber();
--- a/src/dialogs/EditFilterDialog.cpp
+++ b/src/dialogs/EditFilterDialog.cpp
@@ -321,17 +321,17 @@ EditFilterDialog::updateDropTarget( cons
                 // for relative time specifications numValue is a time difference in seconds 'pointing to the past'
                 if( date.isValid() )
                 {
-                    filter.filter.numValue = QDateTime( date ).toSecsSinceEpoch();
+                    filter.filter.numValue = date.startOfDay().toSecsSinceEpoch();
                     isDateAbsolute = true;
                 }
                 else if( strTime.contains(shortDateReg) )
                 {
-                    filter.filter.numValue = QDateTime( QDate( QDate::currentDate().year(), shortDateReg.cap(2).toInt(), shortDateReg.cap(1).toInt() ) ).toSecsSinceEpoch();
+                    filter.filter.numValue = QDate( QDate::currentDate().year(), shortDateReg.cap(2).toInt(), shortDateReg.cap(1).toInt() ).startOfDay().toSecsSinceEpoch();
                     isDateAbsolute = true;
                 }
                 else if( strTime.contains(longDateReg) )
                 {
-                    filter.filter.numValue = QDateTime( QDate( longDateReg.cap(3).toInt(), longDateReg.cap(2).toInt(), longDateReg.cap(1).toInt() ) ).toSecsSinceEpoch();
+                    filter.filter.numValue =  QDate( longDateReg.cap(3).toInt(), longDateReg.cap(2).toInt(), longDateReg.cap(1).toInt() ).startOfDay().toSecsSinceEpoch();
                     isDateAbsolute = true;
                 }
                 else
--- a/src/widgets/MetaQueryWidget.cpp
+++ b/src/widgets/MetaQueryWidget.cpp
@@ -526,7 +526,7 @@ MetaQueryWidget::numValueDateChanged()
     {
         QDate date;
         dateSelection->getDate( &date );
-        m_filter.numValue = QDateTime( date ).toSecsSinceEpoch();
+        m_filter.numValue = date.startOfDay().toSecsSinceEpoch();
 
         Q_EMIT changed(m_filter);
     }
@@ -540,7 +540,7 @@ MetaQueryWidget::numValue2DateChanged()
     {
         QDate date;
         dateSelection->getDate( &date );
-        m_filter.numValue2 = QDateTime( date ).toSecsSinceEpoch();
+        m_filter.numValue2 = date.startOfDay().toSecsSinceEpoch();
 
         Q_EMIT changed(m_filter);
     }
--- a/tests/core/meta/support/TestMetaConstants.cpp
+++ b/tests/core/meta/support/TestMetaConstants.cpp
@@ -417,8 +417,8 @@ TestMetaConstants::testValueForField()
     trackData[ Meta::Field::FILESIZE ] = 1;
     trackData[ Meta::Field::SCORE ] = double( 1 );
     trackData[ Meta::Field::RATING ] = 1;
-    trackData[ Meta::Field::FIRST_PLAYED ] = QDateTime( QDate( 2012, 1, 1) );
-    trackData[ Meta::Field::LAST_PLAYED ] = QDateTime( QDate( 2012, 1, 1) );
+    trackData[ Meta::Field::FIRST_PLAYED ] = QDate( 2012, 1, 1).startOfDay();
+    trackData[ Meta::Field::LAST_PLAYED ] = QDate( 2012, 1, 1).startOfDay();
     trackData[ Meta::Field::PLAYCOUNT ] = 1;
     trackData[ Meta::Field::UNIQUEID ] = "test uid";
 
