Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    61

    Raggruppare in base alla data

    ciao a tutti

    ho una tabella con un campo di tipo varchar dove memorizzo la data di inserimento di ogni record nel formato gg/mm/aaaa...voglio fare una query che mi selezioni tutti i record inseriti nell'ultimo mese raggruppandoli in base alla data di inserimento....come posso fare?

    ciao e grazie
    sergio

  2. #2
    Utente di HTML.it L'avatar di Nazareno
    Registrato dal
    Mar 2001
    residenza
    Udine
    Messaggi
    176
    Spiegati meglio... perchè hai utilizzato un campo varchar invece di uno datetime? "Raggruppandoli" non è il termine esatto, forse volevi dire ordinandoli, visto che prendendo solo quelli dell'ultimo mese hai già un gruppo di record

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    61
    ho usato varchar perchè mi risultava più comodo da gestire tramite ASP...voglio prendere solo quelli dell'ultimo mese (cioè il più vecchio è stato inserito al massimo un mese prima della data odierna)...ma li voglio dividere in base al giorno...cioè :

    giorno x
    - record 1
    - record 2

    giorno y
    - record 3
    - record 4

    ecc ecc...

    spero di essere riuscito a spiegarmi

    sergio

  4. #4
    Utente di HTML.it L'avatar di Nazareno
    Registrato dal
    Mar 2001
    residenza
    Udine
    Messaggi
    176
    Devi "forzare" SQL Server a riconoscere il formato data in italiano perchè al tuo campo data devi poi applicare un CAST in datetime per fare confronti. Comunque, io ho chiamato CampoData il tuo varchar che contiene le date e Tabella la tua tabella. La query è questa, ma mi sa che devi fare una stored procedure...


    codice:
    SET DATEFORMAT dmy
    
    SELECT * FROM Tabella WHERE CAST(CampoData AS datetime) > DATEADD(m,-1,GETDATE())
    ORDER BY CAST(CampoData AS datetime)

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    61
    ho provato la tua query e funziona...l'unica cosa è che non mi seleziona il record del 13/10/2001...la selezione si ferma al 15/10/2001...come posso fare per includere nel resultset alche i record del 13/10/2001 (cioè quelli inseriti esattamente un mese fa?)

    grazie 1000 dell'aiuto!

    sergio

  6. #6
    Utente di HTML.it L'avatar di Nazareno
    Registrato dal
    Mar 2001
    residenza
    Udine
    Messaggi
    176
    Acc... mi hai fregato! In effetti il GETDATE() restituisce ora e data, mentre se nel CampoData non specifichi l'ora, per SQL Server è 0:00:00. Ho provato a mettere nella query >= al posto di > (che, in effetti, per logica è più giusto) ma niente da fare per la questione delle ore. In pratica farebbe questo confronto :
    13/10/2001 0:00:00 >= 13/10/2001 12:25:00 ?
    E ovviamente il risultato è falso. Non saprei come aiutarti. Prova a dare un'occhiata ai Books OnLine di SQL Server...

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.