Я хочу сравнить значение времени со значением даты и времени - PullRequest
1 голос
/ 25 августа 2011

Я хочу отфильтровать результаты по дате и времени .... У меня дата хранится в отдельном поле с типом данных datetime ... В другом поле хранится значение Time, но это тип данных datetime хранит текущую системную дату вместе с введенным временем. Теперь, когда я фильтрую результаты, используя дату, тогда она работает хорошо и показывает результаты между определенным периодом, например, между датами с 12.10.2011 по 15.12.2011 ... Но когда я хочу показать результаты по времени, это не ' t показать какие-либо результаты ...

Я использую dataadapter и набор данных для извлечения записей из базы данных сервера sql ... Скажите, пожалуйста, решение для сравнения значения времени, взятого из текстового поля, со значением datetime, хранящимся в базе данных, чтобы я мог получать результаты между определенным временем, например с 12:00 до 18:00

Более ясно:

На самом деле у меня есть значение даты и времени, хранящееся в базе данных. То, что я беру из текстового поля, является значением времени. Я хочу извлечь те результаты из базы данных, которые находятся между заданным значением времени .... Чтобы быть более кратким, мое приложение представляет собой систему бронирования для спортивного клуба и предоставляет возможность просматривать уже сделанные заказы .. Здесь я предлагаю два варианты, чтобы просмотреть все заказы для конкретной игры или отфильтровать заказы. В фильтрах бронирований одним из вариантов является фильтрация по дате и времени ... Опция даты работает нормально, но проблема заключается во временной части ... Я предоставляю два раза, но не могу просмотреть брони между ними ...

Мой код:

        Dim prmtimefrom As New SqlParameter("@booking_time", SqlDbType.DateTime)
        prmtimefrom.Value = TextBox3.Text

        Dim prmtimeto As New SqlParameter("@booking_tim", SqlDbType.DateTime)
        prmtimeto.Value = TextBox4.Text




        Dim da As New SqlDataAdapter("select * from Bookings where booking_time Between @booking_time AND @booking_tim AND game = " & x, con)   ' x is the name of a specific game

        da.SelectCommand.Parameters.Add(prmtimefrom)
        da.SelectCommand.Parameters.Add(prmtimeto)
        da.Fill(ds, "Bookings")

Ответы [ 2 ]

0 голосов
/ 25 августа 2011

Примерно так:

Dim starting = TimeSpan.Parse("12:00")
Dim ending = TimeSpan.Parse("18:00")

Dim query = _
    From dr in dt.Rows.Cast(Of DataRow)() _
    Let tod = dr.Field(Of DateTime)(0).TimeOfDay _
    Where tod >= starting AndAlso tod < ending _
    Select dr
0 голосов
/ 25 августа 2011

Я не уверен, спрашиваете ли вы, как это сделать в vb.net или как это сделать в SQL из базы данных. Для фильтрации в .NET необходимо использовать свойство DateTime.TimeOfDay . Простой пример будет:

'Set the from time to start Jan 1, 2011 at 8:00am
Dim startTime as DateTime = New DateTime(2011, 1, 1, 8, 0, 0)

'Set the to time to end Feb 3, 2006 at 1:30pm
Dim endTime as DateTime = New DateTime(2006, 2, 3, 13, 30, 0)

'Compare the current time to the start / end times
'Notice that the dates are ignored, we are only comparing times
If Now.TimeOfDay >= startTime.TimeOfDay AndAlso Now.TimeOfDay <= endTime.TimeOfDay Then
    MsgBox("Within time span")
Else
    MsgBox("Outside of time span")
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...