Код: Выделить всё
public static async Task DetermineOverlap(DateTime start, DateTime end)
{
await Init();
// Convert DateTime to string in the format that SQLite understands
string startFormatted = start.ToString("yyyy-MM-dd HH:mm:ss");
string endFormatted = end.ToString("yyyy-MM-dd HH:mm:ss");
// Raw SQL query to check if the time ranges overlap
string query = @"
SELECT COUNT(*)
FROM Appointment
WHERE
(StartDateTime < @end AND EndDateTime > @start) OR
(@start < EndDateTime AND @end > StartDateTime);";
var count = await _db.ExecuteScalarAsync(query, new object[] { startFormatted, endFormatted });
// Check if any record exists in the result, indicating an overlap
return count > 0;
}
< /code>
Теперь у меня есть отдельная функция, которая, в качестве теста, получает существующую запись StartDateTime и EndDateTime из базы данных. Я точно знаю, что они 2025-01-23 01:00:00
Изменить: вопрос был закрыт за возможным обманом, решение было предложено, однако не связано ни C#, ни Sqlite, последнее из которых, по -видимому, вызывает эту проблему (i (i «В» был подобный запрос на это в прямом SQL и не имел проблем) ... также, SQLite хранится как текст, так что есть, поэтому он обрабатывается по -разному.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-sqlite