Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problemi con le DATE in SQL Server

    Sto cercando di usare SQL Server
    ho creato un DB Sql...

    ho un tabella con 2 campi...

    un campo Abbonamento (datetime) e un campo Scadenza (tinyint)

    dentro a abbonamento di default c'è getdate()

    io vorrei che ogni giorno il campo scadenza venisse aggiornato
    con la differenza tra la data nel campo Abbonamento e la data odierna

    pensavo di fare un datediff(d,Abbonamento,getdate()) ma continua a darmi errore dice che non posso usare Abbonamento in quanto colonna.

    non ho idea di come fare...

    poi vorrei sapere come si fa a dichiarare un campo data in una store
    procedure e successivamente a inserirla nel campo presente in tabella.

    sto guardando ls MSDN e il book di SQL... ma non ci sto capendo proprio
    niente... magari se potete darmi una mano... ^_^

    Se magari sapete anche indicarmi dove posso trovare in rete un manuale, un tutorial, una guida sulle store procedures... ho cercato ma non ho trovato nulla di interessante... e mi servirebbe proprio visto che non ho idea di come farle.

    Grazie a tutti

    p.s. aiutooooooooooooooooooo

  2. #2

    Re: Problemi con le DATE in SQL Server

    Originariamente inviato da Pandax
    io vorrei che ogni giorno il campo scadenza venisse aggiornato
    con la differenza tra la data nel campo Abbonamento e la data odierna

    pensavo di fare un datediff(d,Abbonamento,getdate()) ma continua a darmi errore dice che non posso usare Abbonamento in quanto colonna.
    Il campo scadenza e' meglio che sia un campo cosidetto calcolato e non un campo effettivamente presente nel db. Quindi all'interno delle tue query (o stored procedures) solo nella select metti questo campo il cui valore e' la differenza tra data odierna e la data contenuta in Abbonamento es.
    codice:
    DATEDIFF(day, Abbonamento, getdate()) AS scadenza
    Per quanto riguarda la documentazione, il book di sql e' un valido strumento cosi come msdn. Esistono anche forum microsoft pubblici su sqlserver nei quali si ricevono risposte da esperti (oltre a questo).
    Ad esempio per specificare i parametri accettati da una stored procedures, puoi specificare un campo di tipo datetime es.
    codice:
    CREATE PROCEDURE GetScadenza 
    @ID int, 
    @Abbonamento datetime, 
    @Scadenza int OUTPUT 
    AS 
    SELECT @Scadenza = DATEDIFF(day, @Abbonamento, getdate())  
    FROM tuatabella 
    WHERE Id = @ID 
    RETURN 
    GO
    non ho sqlserver su cui fare test dell'esempio quindi occhio ad eventuali errori.
    Saluti a tutti
    Riccardo

  3. #3

    Re: Problemi con le DATE in SQL Server

    Originariamente inviato da Pandax
    poi vorrei sapere come si fa a dichiarare un campo data in una store
    procedure e successivamente a inserirla nel campo presente in tabella.
    Non so se ho capito alla perfezione, ma forse quello che vuoi fare è inizializzare una variabile temporanea di tipo Datetime ed utilizzare il suo valore per aggiornare una tabella del database.
    In questo caso:
    codice:
    DECLARE @data AS SMALLDATETIME
    SET @data = GETDATE()
    UPDATE [tabella] SET campo=@data WHERE ...

  4. #4

    Re: Re: Problemi con le DATE in SQL Server

    Originariamente inviato da riccardone
    SELECT @Scadenza = DATEDIFF(day, @Abbonamento, getdate())
    umh... nel riguardare l'esempio di sp che ti ho postato mi sono accorto di un possibile errore nel codice. Essendo Abbonamento un campo del db, non va passato il valore come parametro quindi la sp di esempio dovrebbe essere piu' o meno cosi...
    codice:
    CREATE PROCEDURE GetScadenza 
    @ID int, 
    @Scadenza int OUTPUT 
    AS 
    SELECT @Scadenza = DATEDIFF(day, Abbonamento, getdate())  
    FROM tuatabella 
    WHERE Id = @ID 
    RETURN 
    GO
    Saluti a tutti
    Riccardo

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 © 2025 vBulletin Solutions, Inc. All rights reserved.