You'll have to tell PGFPlots how to handle these times, which can be done using a x coord trafo/.code key. I've defined a new style timeplot that takes care of that.
Note that because you're using a numerically disadvantageous data format (you need to handle 8 significant digits), you should centre your data by defining a zero point close to your actual data range (in your example, you could subtract 22 hours). I've defined a key timeplot zero that takes an hour value for that.

\documentclass[tikz,border=2mm]{article}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\def\transformtime#1:#2:#3!{
\pgfkeys{/pgf/fpu=true,/pgf/fpu/output format=fixed}
\pgfmathparse{#1*3600-\pgfkeysvalueof{/pgfplots/timeplot zero}*3600+#2*60+#3}
\pgfkeys{/pgf/fpu=false}
}
\pgfplotsset{
timeplot zero/.initial=0,
timeplot/.style={
x coord trafo/.code={\expandafter\transformtime##1!},
x coord inv trafo/.code={%
\pgfkeys{/pgf/fpu=true,/pgf/fpu/output format=fixed}
\pgfmathsetmacro\hours{floor(##1/3600)+\pgfkeysvalueof{/pgfplots/timeplot zero}}
\pgfmathsetmacro\minutes{floor((##1-(\hours-\pgfkeysvalueof{/pgfplots/timeplot zero})*3600)/60)}
\pgfmathsetmacro\seconds{##1-floor(##1/60)*60}
\def\pgfmathresult{\pgfmathprintnumber{\hours}:\pgfmathprintnumber{\minutes}:\pgfmathprintnumber[fixed zerofill]{\seconds}}
\pgfkeys{/pgf/fpu=false}
},
scaled x ticks=false,
xticklabel=\tick
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
timeplot, timeplot zero=22,
xtick={22:54:14.75,22:54:15}]
\addplot table {
Time State
22:54:14.716 5
22:54:14.716 5
22:54:14.716 5
22:54:14.716 5
22:54:14.729 4
22:54:14.919 1
22:54:14.919 1
22:54:15.128 5
};
\end{axis}
\end{tikzpicture}
\end{document}