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: 49
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: 7498
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: 49
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: 7498
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: 7498
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 18 volte
openoffice 3.1 windows vista
Muset
 
Messaggi: 49
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: 7498
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: TIMESERIAL su query

Messaggioda Muset » lunedì 12 aprile 2021, 15:22

Buongiorno a tutti,
Grazie per la soluzione suggerita, ma in effetti è come dici tu charlie, il limite è di 12 ore, va a colmare il mancante alle 12 e mi restituisce solo il restante. Ho provato anche a cambiare il formato con quello per oltre le 24 ore, ma senza esito. Farò altre prove
openoffice 3.1 windows vista
Muset
 
Messaggi: 49
Iscritto il: lunedì 29 marzo 2021, 14:35

Re: TIMESERIAL su query

Messaggioda charlie » mercoledì 14 aprile 2021, 7:44

Ciao, perché non lasci il dato come valore decimale? Cosa ti serve in formato orario?
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: 7498
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: TIMESERIAL su query

Messaggioda Muset » mercoledì 14 aprile 2021, 9:15

Buongiorno,
perchè nel subform di FPermessi voglio vedere il totale delle ore di permesso godute
openoffice 3.1 windows vista
Muset
 
Messaggi: 49
Iscritto il: lunedì 29 marzo 2021, 14:35

Re: TIMESERIAL su query

Messaggioda Muset » sabato 17 aprile 2021, 19:43

Buonasera,
la momento sono solo riuscito a portare il limite delle ore da 12 a 24 modificando la Sql da charlie suggerita aggiungendo 24 nella definizione del formato ora :

TO_CHAR( CAST( ( CAST( [campo ore in decimali] AS INTEGER ) ) || ':00' || ':00' AS [TIME] ), 'HH24:MI' )

ovvero converte il campo calcolato delle ore in decimali a formato ore:minuti (by charlie) con il limite delle 12 ore ( raggiunte le 12 ore riparte da 00:00) aggiungendo 24 in HH:MI , il limite si sposta a 24 ore, fino alle 23:59 poi riparte da 00:00
openoffice 3.1 windows vista
Muset
 
Messaggi: 49
Iscritto il: lunedì 29 marzo 2021, 14:35


Torna a Base

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti

cron