diff --git a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp
index 8e00d3811f24d12146df6aa0c782af2437a71711..f0ee979a814fff0257a4f87d1003b34ab0b3aa58 100644
--- a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp
+++ b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.cpp
@@ -42,6 +42,22 @@ namespace armarx::armem::gui
     }
 
 
+    // Source: https://stackoverflow.com/a/26538572
+    class LeadingZeroSpinBox : public QSpinBox
+    {
+        using QSpinBox::QSpinBox;
+
+        int numDigits = 6;
+        int base = 10;
+
+        virtual QString textFromValue(int value) const;
+    };
+    QString LeadingZeroSpinBox::textFromValue(int value) const
+    {
+        return QString("%1").arg(value, numDigits, base, QChar('0'));
+    }
+
+
     SnapshotFormSingle::SnapshotFormSingle()
     {
         const QDateTime now = QDateTime::currentDateTime();
@@ -52,25 +68,41 @@ namespace armarx::armem::gui
         dateTime->setDisabled(true);
         setDateTimeDisplayFormat(dateTime);
 
+        microseconds = new LeadingZeroSpinBox();
+        microseconds->setDisabled(true);
+        microseconds->setMinimum(0);
+        microseconds->setMaximum(1000 * 1000 - 1);
+        microseconds->setSingleStep(1);
+        microseconds->setValue(static_cast<int>(now.toMSecsSinceEpoch() % 1000) * 1000);
+
+        QHBoxLayout* timestampLayout = new QHBoxLayout();
+        timestampLayout->addWidget(dateTime);
+        timestampLayout->addWidget(microseconds);
+
         latest = new QCheckBox("Latest");
         latest->setChecked(true);
 
         QGridLayout* layout = new QGridLayout(this);
         layout->addWidget(label, 0, 0);
-        layout->addWidget(dateTime, 0, 1);
+        layout->addLayout(timestampLayout, 0, 1);
         layout->addWidget(latest, 0, 2);
 
         connect(latest, &QCheckBox::toggled, dateTime, &QDateTimeEdit::setDisabled);
+        connect(latest, &QCheckBox::toggled, microseconds, &QSpinBox::setDisabled);
 
         connect(dateTime, &QDateTimeEdit::dateTimeChanged, this, &SnapshotForm::queryChanged);
+        connect(microseconds, QOverload<int>::of(&QSpinBox::valueChanged), this, &SnapshotForm::queryChanged);
         connect(latest, &QCheckBox::toggled, this, &SnapshotForm::queryChanged);
     }
 
+
     void SnapshotFormSingle::fillEntitySelector(client::query::SnapshotSelector& selector)
     {
-        selector.atTime(latest->isChecked()
-                        ? Time::microSeconds(-1)
-                        : Time::milliSeconds(dateTime->dateTime().toMSecsSinceEpoch()));
+        const Time time = latest->isChecked()
+                          ? Time::microSeconds(-1)
+                          : (Time::seconds(dateTime->dateTime().toSecsSinceEpoch()))
+                          + Time::microSeconds(microseconds->value());
+        selector.atTime(time);
     }
 
 
diff --git a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h
index 4fa9b3a8d9148048747174c8c72ed155953dc8b3..0ca9950b33a0585c97a8157bf17ad3c272fc8abc 100644
--- a/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h
+++ b/source/RobotAPI/libraries/armem_gui/query_widgets/SnapshotForm.h
@@ -59,6 +59,7 @@ namespace armarx::armem::gui
     private:
         QLabel* label;
         QDateTimeEdit* dateTime;
+        QSpinBox* microseconds;
         QCheckBox* latest;
     };