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

    [SQL SERVER 2008] 1° ed ultimo giorno del mese precedente rispetto a getdate()

    Ciao a tutti,

    ho un problemino nel calcolare primo ed ultimo giorno del mese:

    semplificando la sintassi :

    select * from (NOMETABELLA)

    where data between (DATAINIZIO) AND (DATAFINE)

    dove DATAINIZIO è uguale al primo giorno del mese precedente e DATAFINE l'ultimo giorno del mese precedente.

    Grazie per l'aiuto.

    Ciao.
    IncorrectSyntax

  2. #2
    per il primo giorno del mese precedente, togli un mese a GetDate() e usa 1 come giorno
    per l'ultimo del mese precedente, usa il giorno 1 del mese corrente e togli un giorno

    più facile a farsi che a dirsi

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    per il primo giorno del mese precedente, togli un mese a GetDate() e usa 1 come giorno
    per l'ultimo del mese precedente, usa il giorno 1 del mese corrente e togli un giorno

    più facile a farsi che a dirsi

    Innanzi tutto grazie per l'interessamento ....

    E troppo se chiedo una sintassi d'esempio in modo cheriesca a capire esattamente come costruire la query?


    Ciao e grazie.
    IncorrectSyntax

  4. #4
    devi usare DateAdd() per aggiungere / sottrarre giorni/mesi/anni alla data di partenza
    per la costruzione della data, usa la concatenazione classica

  5. #5
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    E se usassi il numero del mese ? Non ti va bene ? devi tener conto anche dell'anno ? (cosa peraltro comunque facile da aggiungere)
    Qualcosa del tipo : select * from tabella where datepart(mm,data) = datepart(mm,getdate())-1

    (richiede ovviamente un minimo di gestione del numero del mese, se è 1 non può diventare 0 ma 12, etc)

    EDIT
    In alternativa:

    --First day of last month
    SELECT DATEADD(m,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()), 0))
    --Last day of last month
    SELECT DATEADD(d,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))

    http://stackoverflow.com/questions/1...onth-using-sql
    Ultima modifica di comas17; 11-12-2013 a 20:20

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.