Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    SQL conversione in Time

    mi serve ancora una volta supporto per un'operazione probabilmente banalissima...
    devo inserire in un campo con datatype Time la somma della differenza di due orari, ovvero devo inserire nel campo del db il risultato di questa operazione:

    datediff("n", A, B) + datediff("n", C,D)

    con A,B,C e D che sono orari (ad es: 08:05, 09:00, 11:15, 12:30)

    A meno che io non abbia capito male il funzionamento di datediff, il risultato che mi esce dall'operazione dovrebbe essere un numero ("n"= minuti)... come devo manipolarlo per inserirlo in un campo di tipo Time di una tabella SQL2008?


    grazie
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    non discuto (in ogni caso ti confermo che a me funziona con "n") però il problema non è quello, è che non so come devo trasformare il risultato di datediff per poterlo cacciare nel campo di tipo Time... ho provato a convertirlo con CDate ma naturalmente CDate non accetta il long restituito da datediff come espressione da convertire
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    CDate??? con m$sql devi usare CAST o CONVERT!

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    non ci arrivo....
    sono in una pagina aspnet vb e sto costruendo la stringa sql per l'insert: mi spieghi cosa devo scrivere?
    codice:
    dim risultato = 147 'minuti risultanti dalle mie operazioni datediff
    strsql = "INSERT INTO tabella (campoditipoTime) VALUES (" & risultato & ")"
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    come puoi vedere qui http://msdn.microsoft.com/en-us/library/ms187928.aspx, non è possibile convertire direttamente un int in time.

    un trucco può essere questo

    INSERT INTO [TEST].[dbo].[TimeTable]
    ([Tempo])
    VALUES
    (convert(time,dateadd(n,147,'00:00:00.00')))

    facce sape'

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    meglio di un orologio svizzero!
    grazie
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  8. #8
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    sempre query col time

    altra richiesta: dopo aver fatto diversi inserimenti con la stringa di cui sopra, ora devo fare delle estrazioni dei dati raggruppati... volevo fare una cosa così
    codice:
    SELECT SUM(campoditipoTime) as tempototale FROM tabella WHERE IDtesta=x
    ma il SUM su un campo di tipo Time mi restituisce questo errore: "Tipo di dati di operando time non valido per l'operatore sum."

    C'è un altro operatore disponibile per ottenere quel che voglio ottenere?
    (questa mi ricorda Totò a Milano: "per andare dove vogliamo andare, per dove dobbiamo andare?")
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.