Member 13234654 Ответов: 1

Как рассчитать разницу во времени, хранящуюся в базе данных SQL с помощью VB.NET


Привет, у меня есть имя столбца (Time_IN, Time_OUT, Total) в базе данных sql.
В time_IN сохраненное значение-строка '07:00: 00 AM", а в Time_OUT=текущее время или lblTime. text

Я хочу добавить два столбца и вставить в столбец total с помощью vb.net.

Заранее спасибо.

Это мой код, но я не знаю, как выбрать TimeIN из таблицы TimeLog


Dim dFrom As DateTime  
                Dim dTo As DateTime  
                Dim sDateFrom As String = 'I want to select value from time_IN
                Dim sDateTo As String = lblTime.Text 'Current Time  
                If DateTime.TryParse(sDateFrom, dFrom) AndAlso DateTime.TryParse(sDateTo, dTo) Then  
                    Dim TS As TimeSpan = dTo - dFrom  
                    Dim hour As Integer = TS.Hours  
                    Dim mins As Integer = TS.Minutes  
                    Dim secs As Integer = TS.Seconds  
                    Dim timeDiff As String = ((hour.ToString("00") & ":") + mins.ToString("00") & ":") + secs.ToString("00")  
                    txttotal.Text = timeDiff  
                End If


Что я уже пробовал:

Dim dFrom As DateTime  
                Dim dTo As DateTime  
                Dim sDateFrom As String = lbltime.text 'current time
                Dim sDateTo As String = lblTime.Text 'Current Time  
                If DateTime.TryParse(sDateFrom, dFrom) AndAlso DateTime.TryParse(sDateTo, dTo) Then  
                    Dim TS As TimeSpan = dTo - dFrom  
                    Dim hour As Integer = TS.Hours  
                    Dim mins As Integer = TS.Minutes  
                    Dim secs As Integer = TS.Seconds  
                    Dim timeDiff As String = ((hour.ToString("00") & ":") + mins.ToString("00") & ":") + secs.ToString("00")  
                    txttotal.Text = timeDiff  
                End If


- ошибки нет, но результат 0: 00: 00

Richard MacCutchan

Почему вы храните время в виде строк, когда SQL имеет определенные типы для дат и времени?

Richard Deeming

Типы даты и времени[^]

Звучит так, как будто ты хочешь время[^] тип.

Maciej Los

Пожалуйста, предоставьте примерные данные...

1 Ответов

Рейтинг:
1

Member 13223909

Вы должны использовать правильные типы данных для хранения данных в sql, но это поможет вам сейчас

просто измените strConnectionString на свой собственный.


Dim sDateFrom As String = Nothing
   Dim dFrom As DateTime
   Dim dTo As DateTime
   Dim sDateTo As String = lblTime.Text 'Current Time
   Dim connection As New SqlConnection(strConnectionString)
   Using connection
       Dim command As SqlCommand = New SqlCommand("select top 1 TimeIN from TimeLog;", connection)
       connection.Open()
       Dim reader As SqlDataReader = command.ExecuteReader()
       If reader.HasRows Then
           Do While reader.Read()
               sDateFrom = reader.GetValue(0) ' TimeIn value
           Loop
       End If
   End Using

   sDateFrom = DateTime.TryParse(sDateFrom, dFrom)
   sDateTo = DateTime.TryParse(sDateTo, dTo)
   Dim TS As TimeSpan = dFrom - dTo
   Dim hour As Integer = TS.Hours
   Dim mins As Integer = TS.Minutes
   Dim secs As Integer = TS.Seconds
   Dim timeDiff As String = ((hour.ToString("00") & ":") + mins.ToString("00") & ":") + secs.ToString("00")
   txttotal.Text = timeDiff