Conversione da Datetime a string da DB Mysql

di il
1 risposte

Conversione da Datetime a string da DB Mysql

Buongiorno ho un DBmysql con all'interno una tabella che contiene dei campi dateTime, ho necessità di sommare i campi e rendere disponibile l'output in tre caselle di testo su un form realizzato in VBnet.

per calcolare la somma utilizzo la seguente query:
Dim StringPresidio As String = "select "
" sec_to_time (sum(time_to_sec(login))) as SommaLogin, " & _
" sec_to_time (sum(time_to_sec(effettivo))) as SommaEffettivo," & _
" sec_to_time (sum(time_to_sec(pausa))) as SommaPausa " & _
" from marcature where datal between '2019-09-01 00:00:00' and '2019-09-30 00:00:00' and idUtente = 248"

La query mi restituisce :
# SommaLogin, SommaEffettivo, SommaPausa
'38:26:11', '33:26:08', '05:00:03'

per visualizzare i dati nelle textbox uso:

Private Sub PresidioTotale()

Dim connessione As New MySqlConnection(connDb)
connessione.Open()

Dim StringPresidio As String = "select " & _
"sec_to_time (sum(time_to_sec(login))) as SommaLogin, " & _
"sec_to_time (sum(time_to_sec(effettivo))) as SommaEffettivo," & _
"sec_to_time (sum(time_to_sec(pausa))) as SommaPausa " & _
" from marcature where datal between '2019-09-01 00:00:00' and '2019-09-30 00:00:00' and idopeasy = " & idOpEasyCall & ""


Dim cmdPresidio As New MySqlCommand(StringPresidio, connessione)
Dim rs As MySqlDataReader = cmdPresidio.ExecuteReader


While rs.Read()
txt_login.Text = Format((rs("SommaLogin")) <<<<<<<<< errore in debug
txt_effettivo.Text = rs("SommaEffettivo")
txt_pausa.Text = rs("SommaPausa")

End While
rs.Close()
connessione.Close()

L'errore in esecuzione è : Cast non valido dal tipo 'TimeSpan' al tipo 'String'.

Potete gentilmente darmi una soluzione?

Grazie
Marcello

1 Risposte

  • Re: Conversione da Datetime a string da DB Mysql

    Ho trovato la soluzione, la posto per chi dovesse avere lo stesso problema.
    per estrarre il dato e visualizzarlo correttamente occorre fare così

    '''''''''''''''''creare una variabile di tipo TimeSpan
    Dim login As TimeSpan = rs("SommaLogin")
    ''''''''''''''''' estrarre il dato che ci interessa dalla variabile e passarlo alla textbox sotto fdorma di stringa
    txt_login.Text = login.TotalHours.ToString

    è possibile tramite le proprietà estrarre ore, minuti e secondi.

    Buona programmazione a tutti
Devi accedere o registrarti per scrivere nel forum
1 risposte