.NET Maui: обнаружение перекрывающихся дат с помощью SQLite [дубликат]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .NET Maui: обнаружение перекрывающихся дат с помощью SQLite [дубликат]

Сообщение Anonymous »

У меня возникла очень сложная проблема. Я пытаюсь создать функцию, которая при задании даты/времени начала и даты/времени окончания определяет, перекрывается ли какая-либо из них с другой датой/временем в базе данных SQLite, и возвращает true или false в зависимости от результата. После много возни, это было лучшее, что мне удалось придумать:

Код: Выделить всё

        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;
}
Теперь у меня есть отдельная функция, которая в качестве теста получает существующие записи StartDateTime и EndDateTime из базы данных. Я точно знаю, что это 2025-01-23 01:00:00 и 2025-01-23 01:15:00 соответственно. Теперь параметры, которые я передаю в DefinityOverlap, — это DateTime, состоящий из 23 января 2025 года 1:00:00 и 23 января 2025 года 1:45:00 (поэтому я конвертирую строковый формат)... последний из них явно перекрывается с 1:15 ночи. Проблема в том, что, несмотря ни на что, функция всегда возвращает False. Я экспериментировал с множеством разных способов сделать это, но безрезультатно. Я упускаю что-то очень очевидное? Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-sqlite
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • «SQLite.SQLiteException» в SQLite-net.dll и «SQLite.SQLiteException» в ошибке System.Private.CoreLib.dll в .net Maui, ко
    Anonymous » » в форуме C#
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • «SQLite.SQLiteException» в SQLite-net.dll и «SQLite.SQLiteException» в ошибке System.Private.CoreLib.dll в .net Maui, ко
    Anonymous » » в форуме C#
    0 Ответы
    64 Просмотры
    Последнее сообщение Anonymous
  • .NET MAUI: обнаружение дат перекрытия с использованием SQLite [Duplicate]
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как я могу получить массив всех перекрывающихся диапазонов дат в заданном наборе?
    Anonymous » » в форуме Javascript
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • .NET MAUI – можно ли включить события щелчка для перекрывающихся элементов управления?
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»