Salve @By65Franco,
> WHERE [BkDateTimeBackup] BETWEEN '07-08-2023 12:37:12.00' AND '07-08-2023 12:37:12.999'
successivamente, fortunatamente utilizzi il formato ISO '2023-08-07 14:39:57'
giusto per ricordare la cosa, visto che stai utilizzando SQL Server, il valore di datetime e' sempre arrotondato a 3 millisecondi, ed in questo senso '07-08-2023 12:37:12.999' sarebbe automaGicamente arrotondato a 12:37:13.000... per trovare il valore massimo del secondo, gestendo i millesimi, devi utilizzare '07-08-2023 12:37:12.997'
sempre per ricordare la cosa, e sempre in SQL Server, e' sempre consigliabile utilizzare il formato ISO, quindi '2023-08-07 14:39:57', perche' diversamente l'interpretazione del "valore" della data dipende dalle impostazioni internazionali legate all'impostazione di lingua dell'account che esegue la query... nel tuo caso, '07-08-2023 12:37:12.999', utilizzato da un account con localizzazione in inglese, intenderebbe l'8 luglio 2023...
il formato YYYY-MM-DD invece viene sempre correttamente riconosciuto in quanto tale.
per il resto, come gia' hai avuto modo di avere conferma, devi effettivamente "accorciare" la data per effettuare operazioni di confronto con una data senza i millisecondi come da te passata come parametro, visto che il valore originale in tabella invece contiene tali valorizzazioni... diversamente, ovviamente, non avresti comparazioni positive per come e quanto da te ricercato...
questo vale anche per il filtro lato client, visto anche che stai tennicamente operando lato client in c#, filtrando l'intera popolazione dopo averla comunque interamente scaricata lin locale…
sinceramente, non concordo con quanto indicato da @Max,Riservo circa la separazione della parte dei millisecondi… opinione personale… io manterrei sempre e comunque il dato “qual'e'”… le funzioni di formattazione/conversione sono fatte apposta per essere utilizzate, anche se sicuramente hanno un peso nel piano di esecuzione, ma sono comunque degli scalari
salutoni romagnoli
--
Andrea