Autore Topic: [quasi RISOLTO] inserire un orario nel database mysql  (Letto 1709 volte)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
[quasi RISOLTO] inserire un orario nel database mysql
« il: 03 Febbraio 2017, 17:55:52 »
in mysql esiste il tipo di dato time (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-types.html)

come si converte una stringa in formato tempo per inserirla nel db?
« Ultima modifica: 06 Febbraio 2017, 13:45:16 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:inserire un orario nel database mysql
« Risposta #1 il: 03 Febbraio 2017, 18:16:09 »
Che io sappia tutti i database accettano per il tempo la stringa in questo formato  ‘HH:MM:SS’

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:inserire un orario nel database mysql
« Risposta #2 il: 05 Febbraio 2017, 14:20:01 »
ci riprovo, ma se mettto 00:00:00 mi inserisce null

magari con una stringa diferente. Lunedi' controllo
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:inserire un orario nel database mysql
« Risposta #3 il: 05 Febbraio 2017, 14:24:03 »
Guarda un po cosa ho risposto a Eloaders nell'altro post.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:inserire un orario nel database mysql
« Risposta #4 il: 06 Febbraio 2017, 13:40:21 »
Grazie Gianluigi.
il tuo workaround funziona bene:

Codice: [Seleziona]
Orario = Split(MaskBox_orarioStrategia.Text, ":")
....
$Result!orainizio = Date(2017, 1, 1, orario[0], orario[1], orario[2])
...

del resto la parte GIORNALIERA del campo data la butta direttamente il motore del db e' quindi l'inseriemtno di campi fake non influenza :D

Grazie :D

PS: ma ora che il campo "orario" nel database e' inserito CORRETTAMENTE ... perche' quando lo leggo non si vede nulla (nel database visto con MySQLworkbench c'e')?
« Ultima modifica: 06 Febbraio 2017, 13:48:06 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:inserire un orario nel database mysql
« Risposta #5 il: 06 Febbraio 2017, 14:04:33 »
Grazie Gianluigi.
il tuo workaround funziona bene:

Codice: [Seleziona]
Orario = Split(MaskBox_orarioStrategia.Text, ":")
....
$Result!orainizio = Date(2017, 1, 1, orario[0], orario[1], orario[2])
...

del resto la parte GIORNALIERA del campo data la butta direttamente il motore del db e' quindi l'inseriemtno di campi fake non influenza :D

Grazie :D

PS: ma ora che il campo "orario" nel database e' inserito CORRETTAMENTE ... perche' quando lo leggo non si vede nulla (nel database visto con MySQLworkbench c'e')?

Intanto se la data non ti serve puoi inserite l'orario con Time(0, 0, 0) che funziona come Date.

Per quanto riguarda la lettura io non conosco MySql ma penso vorrai leggere i dati come stringa e allora usa Str$

Codice: [Seleziona]
Public Sub Main()

  Dim d1, d2 As Date
 
  ' Print si comporta come Str$'
  d1 = Date(2017, 2, 22, 1, 23, 15)
  Print d1
  d2 = Time(d1)
  Print d2
  d2 = Time(3, 45, 12)
  Print d2

End

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #6 il: 06 Febbraio 2017, 18:01:28 »
no no .. proprio non mi ritorna nulla ... provo ad allegare uno screenshot


pero' mysql workbench fa vedere che c'e' effettivamente il campo con 00:00:00
« Ultima modifica: 06 Febbraio 2017, 18:02:07 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #7 il: 06 Febbraio 2017, 18:16:06 »
Non so cosa dire, l'unica è sperare che Eloaders posti la soluzione, magari se domani non l'ha ancora fatto vedo di sollecitargliela.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #8 il: 06 Febbraio 2017, 21:44:50 »
in mysql esiste il tipo di dato time (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-types.html)

come si converte una stringa in formato tempo per inserirla nel db?

Ciao allegfede,
non c'è bisogno di convertire la stringa, va inserita semplicemente nel formato testo.
Io uso MySql da sempre, non ho mai avuto problemi con inserimento/lettura di dati tipo orario,
a condizione che:
1) Il campo si di tipo TIME
2) Null sia impostato a NO
3) L'orario inserito sia nel formato (hh:mm:ss), tenendo presente che se non gestisci i secondi puoi ometterli e in
    questo caso MySql inserirà automaticamente :00
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #9 il: 08 Febbraio 2017, 13:52:39 »
sul null impostato a no non sono sicuro, ma questo e' quello che vedo da mysql workbench:

ma il valore riportato e' sempre nullo (anche senza tipo date definito) ....
« Ultima modifica: 08 Febbraio 2017, 13:56:31 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #10 il: 08 Febbraio 2017, 19:37:31 »
In ogni caso per ora ho resettato la tabella delle strategie e sono passato al data type "tiny text".

In questo caso il riempimento e la lettura del campo non presenta problemi.


devo mettere [risolto] ? in realta' e' un problema ancora in essere ... bug?
se corri, morirai stanco (motto degli sniper)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #11 il: 08 Febbraio 2017, 22:22:02 »
Ma il problema lo hai solo con orari tipo 00:00:00 o con qualsiasi orario ?
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #12 il: 09 Febbraio 2017, 07:31:23 »
Qui puoi vedere un piccolo esempio sull'inserimento e la lettura in MySql dei dati di tipo Time, Date, e DateTime, fatto da Tornu.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline cesver

  • Gamberetto
  • *
  • Post: 26
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #13 il: 09 Febbraio 2017, 09:46:07 »
potrebbe interessarti questo mio spezzone di un codice?

nel caso...(attenzione l'apice singolo inserito accanto al doppio apice):

 datavalida1 = Format$(DateBox1.Value, "dd/mm/yyyy hh:nn:ss")
  datavalida2 = Format$(DateBox2.Value, "dd/mm/yyyy hh:nn:ss")
  where = sSQL & " WHERE timestring <'" & datavalida1 & "'"
  between = sSQL & " WHERE timestring BETWEEN '" & datavalida1 & "' AND '" & datavalida2 & "' order by time_ms"

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:[quasi RISOLTO] inserire un orario nel database mysql
« Risposta #14 il: 12 Febbraio 2017, 20:15:52 »
Ma il problema lo hai solo con orari tipo 00:00:00 o con qualsiasi orario ?

qualsiasi.

devo dire che questo problema con il db, il problema con rdir e lìimpossibilita di far girare qualsivoglia kdenlive sul mio pc mi ha spinto in questi giorni a riformattare il computer e a riprendere il lavoro (motivo della mia latitanza di questa settimana).

A questo punto, lunedi' rifaro' qualche test per capire se era solo un problema della mia macchina incasinata ...
se corri, morirai stanco (motto degli sniper)