Microsoft SQL Server 2012を使っています。

例えば以下のようなレコードをもつテーブルがあるとします。
レコードは10分毎の1ヶ月分のデータになります。(4032Row)
DateTime, Value1, Value2
2018-02-01 00:10:00 0.3 0.3
2018-02-01 00:20:00 0.3 0.6
2018-02-01 00:30:00 0.5 1.1
2018-02-01 00:40:00 0.2 1
2018-02-01 00:50:00 0.4 1.1
2018-02-01 01:00:00 0.1 0.7
...
2018-02-28 24:00:00 0.1 0.7

ここで行いたいことは
「毎日のValue2の最大値とその時間を返す」ことです。

例えば、上の例だった場合 2/1のValue2の最大値が1.1であった場合、クエリの戻り値は
2018-02-01 00:30:00 0.5 1.1
であってほしいです。
Value2に1.1が複数ある場合は最初のレコードを最大値を記録した最初のレコードとして、DateTimeフィールド、Value1フィールドの値を受け取ります。

ここで試してみたクエリは以下の通りでした。

SELECT FORMAT(DateTime, 'yyyyMMdd'), MAX(dblValue2) 
FROM TableA  
Group BY FORMAT(DateTime, 'yyyyMMdd')

これだと各日のMAX値は取れたのですが、そのMAX値を記録した日付が取得できませんでした。。

どなたか、解決するための良いクエリのご教授よろしくお願いします。

※WHILEで以下にもCみたいにプログラマブルに書けば解決はできるのですが…
せっかくなのでクエリで解決したいです。