+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

Date - mese precedente

  1. #1
    CC88 non  in linea Scolaretto
    Salve a tutti.

    Ho una stored procedure che attualmente con delle variabili va ad eseguire dei between ed usando le funzioni sql server sottrae un mese alla data corrente quindi crea (oggi il 30 maggio) un

    between 20170430 and 20170530
    
    Avrei necessit invece, di prendere tutto il mese precedente, non di tornare indietro di un mese.
    Quindi, siamo al 30 maggio, oppure al 10 maggio, oppure al 20 maggio...

    between 20170401 and 20170430
    
    Il 10 gennaio:

    between 20161201 and 20161231
    
    Avete idee? Funzioni gi esistenti (magari)?

    Altro?

    Grazie molte per qualsiasi aiuto.
    Ultima modifica di CC88; 30-05-2017 10:45 

  2. #2
    L'avatar di Brontolo
    Brontolo non  in linea Very Important Person
    Puoi usare le funzioni Month() e Year().
    ℹ️ Leggi di pi su Brontolo ...

  3. #3
    CC88 non  in linea Scolaretto
    Ciao grazie.

    Al momento ho risolto cos:

    declare @first as DATE
    declare @last as DATE
    
    declare @firstday as VARCHAR(8)
    declare @lastday as VARCHAR(8)
    
    set @first = (SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)) -- primo giorno mese precedente
    set @last = (select DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, -1)) --ultimo giorno mese precedente
    
    set @firstday = (SELECT CONVERT(VARCHAR(8), @first, 112))
    set @lastday = (SELECT CONVERT(VARCHAR(8), @last, 112))
    
    PRINT @firstday
    PRINT @lastday
    

  4. #4
    Dev-01 non  in linea Scribacchino
    Scusa, ma essendo il primo giorno sempre il 1, non sarebbe meglio dichiarare una costante?

    Anche se di poco dovrebbero migliorare pure le prestazioni e diminuire il carico sul server (poi dipende dal numero di operazioni "simultanee").

  5. #5
    L'avatar di nman
    nman non  in linea Topo di biblioteca
    Certamente con TSQL sono una schiappetta e in quanto sto proponendo ci deve essere qualche scemata
    pero mi sembra funzionale e semplice
    declare @FirDay as datetime
    declare @LasDay as datetime
    
    set @LasDay = DATEADD(dd, - Day(GETDATE()), GETDATE())
    set @FirDay = DATEADD(dd, - (Day(@LasDay) - 1), @LasDay)
    
    print CONVERT(VARCHAR(8), @FirDay, 112)
    print CONVERT(VARCHAR(8), @LasDay, 112)
    
    .
    Ultima modifica di nman; 01-06-2017 20:43 

  6. #6
    CC88 non  in linea Scolaretto
    Quote Originariamente inviato da nman Visualizza il messaggio
    Certamente con TSQL sono una schiappetta e in quanto sto proponendo ci deve essere qualche scemata
    pero mi sembra funzionale e semplice
    declare @FirDay as datetime
    declare @LasDay as datetime
    
    set @LasDay = DATEADD(dd, - Day(GETDATE()), GETDATE())
    set @FirDay = DATEADD(dd, - (Day(@LasDay) - 1), @LasDay)
    
    print CONVERT(VARCHAR(8), @FirDay, 112)
    print CONVERT(VARCHAR(8), @LasDay, 112)
    
    .
    non quello che ho fatto sopra solo pi 'compatto'?

  7. #7
    L'avatar di nman
    nman non  in linea Topo di biblioteca
    Quote Originariamente inviato da CC88 Visualizza il messaggio
    ....... Avete idee? .......
    Quote Originariamente inviato da CC88 Visualizza il messaggio
    non quello che ho fatto sopra solo pi 'compatto'?
    Booohhhhh!!!
    Si in effetti e la stessa cosa

    Tu hai chiesto se abbiamo idee e io non ho neanche guardato nel dettaglio il tuo codice
    (sarei stato influenzato .....)

    ho scritto direttamente quello che mi veniva fuori dal mio unico e stanco neurone

    .

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 10
    Ultimo Post: 03-11-2020, 20:47
  2. Lancio report con saldi del mese precedente
    Da skate2k5 nel forum Microsoft Access
    Risposte: 17
    Ultimo Post: 19-11-2012, 13:04
  3. [VS2010] Recuperare mese fra due date
    Da dolcissimo nel forum Visual Basic .Net
    Risposte: 14
    Ultimo Post: 19-12-2011, 02:40
  4. Risposte: 13
    Ultimo Post: 21-01-2009, 15:31
  5. Recupero date settimana precedente
    Da iltheo nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 20-03-2008, 15:20