442 messaggi dal 09 marzo 2006
ciao.
Ho un campo in cui devo inserire la durata di un appuntamento , uso sql server 12 ,nella tabella uso un campo time(7) per immagazzinare la durata , il problema è che se la durata è piu grande di un giorno mi da un errore di overflow di sqltype.
Ho visto cercando su google un post che consigliava di usare un campo bigint e la proprietà tiks di timespan.
Funziona , ma non so come effettuare le conversioni dopo , io dopo voglio avere un campo dove mi mostra la durata con ore minuti e secondi, anche se i giorni sono piu di uno.
come è meglio gestire una durata su sqlserver?
grazie.
Modificato da giuseppe500 il 25 gennaio 2016 11.09 -
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
l'indicazione delle tipologia di dato e' corretta... poi che sia bigint o int dipende anche dalla precisione richiesta...
in questo modo, tu saprai che l'operazione specifica e' durata X secondi (o con precisione più specifica se desiderato)... con la quantita' base specificata, poi potrai passare a conversioni come meglio desiderato con semplici operazioni matematiche... una breve ricerca mi ha ad esempio riportato http://stackoverflow.com/questions/758891/calculating-timespan-with-t-sql
dove la quantita' di secondi iniziale viene "mostrata" come una stringa simile a '1:09:19:01' ad indicarfe 1 giorno + 9 ore + 19 minuti e 1 secondo..
continuerai a archiviare il tempo trascorso in unita' base di secondi, e solo al momento desiderato effettuerai la trascodifica testuale..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.