önce dakika bazında gece gündüz hesabı yapan bir fonksiyon oluşturulur
Function GeceGunduz(Giris As Date, Cikis As Date, xGc As Boolean) As String '?GeceGunduz(cdate("3.01.2023 21:45:00"), cdate("4.01.2023 06:40:00"))
y1 = Int(Giris * 24 * 60)
y2 = Int(Cikis * 24 * 60)
For y = y1 To y2
z = Format(y / (24 * 60), "hh:nn")
If TimeValue(z) >= TimeValue("06:00:00") And TimeValue(z) <= TimeValue("20:00:00") Then xGunduz = xGunduz + 1 Else xGece = xGece + 1
Next y
t = IIf(xGc, xGece, xGunduz)
GeceGunduz = t \ 60 & ":" & t Mod 60
End Function
sonrada oluşturulan sorgu ile veriler çekilirSELECT Tablo1.CikisTarihi, Tablo1.CikisSaati, Tablo1.VarısTarihi, Tablo1.VarısSaati, GeceGunduz([CikisTarihi]+[CikisSaati],[VarısTarihi]+[VarısSaati],0) AS Gündüz, GeceGunduz([CikisTarihi]+[CikisSaati],[VarısTarihi]+[VarısSaati],-1) AS Gece
FROM Tablo1;