Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605

    Select SQLSERVER e date

    Ciao a a tutti su sql server o la data in questo formato. 24/06/2008 11.00.00
    come faccio a fare un distict del campo tenendo prensente solo giorno mese ed anno?
    CIoè non considerando l'ora?
    Ci sto provando da un po ma nulla da re..!!

    Ciao a tutti
    Giuseppe

  2. #2
    2 modi: o casti, o tronchi

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605
    ho trovato.... ma ho ancora un piccolo problema non riesce ad ordinarle per data crescente....


    posto comunque la select casomai dovesse servire a qualcuno....


    SELECT DISTINCT CONVERT(CHAR(12),[Inizio],105) as data_inizio,
    datename(weekday,[Inizio]) as 'Nome giorno'
    FROM dbo.[Programma] order by [data_inizio]


    in questo modo mi toglie le ore e mi fa il distinct, in più prendo il nome del giorno.!!
    Ma ancora non riesco ad ordinarle...
    il risultato è questo


    04-05-2008 domenica
    05-04-2008 sabato
    12-05-2008 lunedì



    come mai?

  4. #4
    Se le converti in testo poi te l'ordina come fosse testo, prova così:

    codice:
    SELECT DISTINCT CONVERT(CHAR(12),[Inizio],105) as data_inizio,
    datename(weekday,[Inizio]) as 'Nome giorno'
    FROM dbo.[Programma] order by [Inizio]

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605
    nel front end di sql server mi da errore
    questo:

    Messaggio 145, livello 15, stato 1, riga 25
    Se si specifica SELECT DISTINCT, gli elementi ORDER BY devono essere inclusi nell'elenco di selezione.

    anche così non và...

    mananggia...
    che gle posso fare...?

  6. #6
    Metticelo

    Aggiungi [Inizio] alla select in alto, anche che esce come risultato poi basta che non lo visualizzi nella pagina ASP.

    Prova

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605
    CIA Debiru,
    ho fatto come dici tu:

    Codice PHP:


    ELECT DISTINCT CONVERT
    (CHAR(12),[Inizio],105) as data_inizio, [Inizio],
    datename(weekday,[Inizio]) as 'Nome giorno'
    FROM dbo.[Programmaorder by [Inizio
    ma il risultato è questo no mi prende più il distinct:

    05-04-2008 2008-04-05 09:00:00.000 sabato
    05-04-2008 2008-04-05 09:30:00.000 sabato
    05-04-2008 2008-04-05 10:00:00.000 sabato
    05-04-2008 2008-04-05 10:30:00.000 sabato
    05-04-2008 2008-04-05 11:30:00.000 sabato
    05-04-2008 2008-04-05 12:30:00.000 sabato
    04-05-2008 2008-05-04 12:00:00.000 domenica
    12-05-2008 2008-05-12 10:22:00.000 lunedì

    ora lo so... che potrei risolvere la cosa da codide.. ma è na questione di principio che mi fa impazzire...

    dove sbaglio...?

  8. #8
    Prova a pastrugnare con il valore 105, provane altri, vedi se riesci a farlo usire nel formato AAAA-MM-GG.

    Se ci riesci sei a cavallo.

    Altrimenti potresti sempre utilizzare CONVERT(CHAR(12),[Inizio],105) ma in questo modo un pò macchinoso:

    substring(CONVERT(CHAR(12),[Inizio],105),5,4)+'-'+substring(CONVERT(CHAR(12),[Inizio],105),3,2)+'-'+substring(CONVERT(CHAR(12),[Inizio],105),1,2) as data_inizio

    A questo punto ti basterebbe rimettere apposto come era prima, invece di order by [Inizio] order by data_inizio e ovviamente levare [Inizio] dalla select

    Prova

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    605
    nulla... da fare... alla fine.....
    ho trovato anche quello che volevo con la query cioè il giorno della settimana
    la scrivo magari può tornare utile a quakcuno

    SELECT distinct CAST(DAY([Inizio]) AS VARCHAR(2)) + ' ' +
    DATENAME(MM, [Inizio]) + ' ' + CAST(YEAR([Inizio]) AS VARCHAR(4)) AS [data],
    [Inizio] FROM dbo.[Programma Scientifico] order by [Inizio]


    ma ancora on riesco ad ordinarla. Il risultato è questo

    5 aprile 2008 2008-04-05 09:00:00.000
    5 aprile 2008 2008-04-05 09:30:00.000
    5 aprile 2008 2008-04-05 10:00:00.000
    5 aprile 2008 2008-04-05 10:30:00.000
    5 aprile 2008 2008-04-05 11:30:00.000
    5 aprile 2008 2008-04-05 12:30:00.000
    4 maggio 2008 2008-05-04 12:00:00.000
    12 maggio 2008 2008-05-12 10:22:00.000



    per ottenere questo

    5 aprile 2008
    4 maggio 2008
    12 maggio 2008

    intatnto lo faccio da codice...
    poi se trovo una soluzione.... cambiero la query

    grazie Debiru


    Giuseppe

  10. #10
    Prova questa, dimmi se ti da errore:
    Codice PHP:
    SELECT DISTINCT 
    CONVERT
    (CHAR(12),[Inizio],105) as data_iniziodatename(weekday,[Inizio]) as 'Nome giorno'
    FROM dbo.[Programma
    order by SUBSTRING(CONVERT(CHAR(12),[Inizio],105),5,4), SUBSTRING(CONVERT(CHAR(12),[Inizio],105),3,2), SUBSTRING(CONVERT(CHAR(12),[Inizio],105),1,2

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.