Mysql kullanıyorsanız CONVERT_TZ fonksiyonunu denediniz mi? Bütün verileri daima utc0 olarak kaydedip, Örneğin;
select COALESCE(SUM(km),0) from car_kms where id = @x and CONVERT_TZ(created_at,'+00:00','+03:00') BETWEEN '2022-03-02 00:00:00' and '2022-03-02 23:59:59'
Veritabanı olarak MsSql Server kullanıyorum.
Sizin son gönderdiğiniz sorgu ile aslında amacıma ulaşırım ancak cihaz konumlarında milyonlarca veri oluyor bu yüzden sürekli günlük km yi filtrelemek performansa olumsuz etki eder. Dolayısıyla her konum eklendiğinde ayrı bir tabloda ilgili cihaz için aşağıdaki gibi bir veri birikmeye başlıyor. Örneğin bugün tarih
2022-02-23 ise tablodan TARIH kolonuyla filtreleme yapılarak MESAFE bilgisi hızlıca alınmış oluyor. İşte tam bu noktada veriler bu tabloya kaydedilirken UTC-0 formatı uygulanırsa bir sonraki günde olması gereken km bilgisi bir önceki güne eklendiği için km kaybına sebep oluyor.
BU VERİLER CİHAZ KONUMLARINDAN AYRI TUTULAN TABLOYA KAYIT EDİLİYOR