Pannello di Controllo Moderatore ]

TIMESERIAL su query

Discussioni sulle caratteristiche di database

TIMESERIAL su query

Messaggioda Muset » mercoledì 7 aprile 2021, 15:59

Buongiorno a tutti, dopo aver sommato 2 DATEDIFF in una query ed in un'altra sommato il risultato della prima di ogni record, ho bisogno di riportare questo totale in stringa "ora" , quindi volevo sapere se TIMESERIAL fa al caso e se è una funzione solo per sql/macro o se si può applicare in un campo query come DATEDIFF, se si qual'è la sintassi corretta? Grazie e buona giornata a tutti
openoffice 3.1 windows vista
Muset
 
Messaggi: 24
Iscritto il: lunedì 29 marzo 2021, 14:35

Re: TIMESERIAL su query

Messaggioda charlie » mercoledì 7 aprile 2021, 17:41

Ciao, non mi sembra che TIMESERIAL faccia parte delle funzioni HSQLDB 1.8 con cui lavora Base.
Qui, puoi trovare tutti i riferimenti necessari: viewtopic.php?f=29&t=6474
charlie
macOS 10.12 Sierra: Open Office 4.1.9 - LibreOffice 6.4.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 7449
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: TIMESERIAL su query

Messaggioda Muset » giovedì 8 aprile 2021, 17:33

Ciao, avevi ragione, è una funzione che non ne fa parte e nemmeno TIMEVALUE che sarebbe stata quella che serviva a me. Ho provato più soluzioni " CAST" e "CONV" , ma o mi dice che non lo riconosce come campo o che i dati non appartengono a Java o che l'argomento non è riconosciuto. Ho cercato nel forum una soluzione senza esito (forse non uso la chiave giusta), mi sono inoltrato anche nella tua guida, ma al momento sono ancora al palo... sono fiducioso, riuscirò a trasformare i numeri in ore :D Grazie, come sempre un grande!!
openoffice 3.1 windows vista
Muset
 
Messaggi: 24
Iscritto il: lunedì 29 marzo 2021, 14:35

Re: TIMESERIAL su query

Messaggioda charlie » venerdì 9 aprile 2021, 8:13

Ciao, questa lunga stringa che avevi messo in una query: viewtopic.php?f=13&t=11148&p=63351#p63360 e ripulita da un SELECT ... FROM ... di troppo, sembra lavorare bene:
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT   TO_CHAR( CAST( '00:' || DATEDIFF( 'mi', "Ingresso", "Uscita" ) + DATEDIFF( 'mi', "Ingresso2", "Uscita2" ) || ':00' AS "TIME" ), 'HH:MI' ) AS "Ore lavorate" FROM { oj "TPresenze" LEFT OUTER JOIN "TDipendenti" ON "TPresenze"."ID Dipendente" = "TDipendenti"."IDDipendenti" }
charlie
macOS 10.12 Sierra: Open Office 4.1.9 - LibreOffice 6.4.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 7449
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: TIMESERIAL su query

Messaggioda charlie » venerdì 9 aprile 2021, 16:18

Ma attenzione a quando si superano i 720 minuti (12 ore), il risultato sarà un orario p.m. in inglese!
charlie
macOS 10.12 Sierra: Open Office 4.1.9 - LibreOffice 6.4.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 7449
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: TIMESERIAL su query

Messaggioda Muset » venerdì 9 aprile 2021, 16:39

Ciao, mi sono spiegato male e ti ho girato la versione vecchia del db. Nel form presenze funziona tutto, quello che volevo fare era come in FFerie, ovvero una subform che mi dia il monte permessi goduti, avendo ottenuto questo con query(Rtotpermessi), ho il risultato in numero quindi lo devo solo convertire in time. Ho provato anche ad applicare il TO_CHAR , ma non funziona...
Allegati
Nuovo database - Copia.odb
(156.47 KiB) Scaricato 3 volte
openoffice 3.1 windows vista
Muset
 
Messaggi: 24
Iscritto il: lunedì 29 marzo 2021, 14:35

Re: TIMESERIAL su query

Messaggioda charlie » sabato 10 aprile 2021, 14:06

Ciao, le conversioni di tipo riservano sempre delle sorprese.
Nel tuo caso abbiamo una somma (funzione di aggregazione) il cui risultato può essere adoperato ulteriormente tramite una Vista.
Ma in che formato sarà il dato? Ho visto che se non lo si converte prima in intero, non funziona:
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT TO_CHAR( CAST( ( CAST( "totnum" AS Integer ) ) || ':00' || ':00' AS "TIME" ), 'HH:MI' )

Così sembra andare, ma se si superano 12 ore o multipli il conteggio si sballa :( .
charlie
macOS 10.12 Sierra: Open Office 4.1.9 - LibreOffice 6.4.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 7449
Iscritto il: mercoledì 19 dicembre 2012, 11:50


Torna a Base

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti