Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Cast in DateTime

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    4

    Cast in DateTime

    Ciao Ragazzi ,
    ho un tabella con tre colonne anno , mese , giorno .
    Come faccio a selezionarli tutti e tre per trasformarli in datetime?
    Grazie

  2. #2
    ce la facciamo a rispettare il regolamento e quindi a indicare che db stiamo usando?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    4

    SQL 2005

    Stiamo parlando di sql 2005

  4. #4
    le tre colonne di che tipo sono?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    4

    Risolto

    Grazie , ho già risolto.
    Penso così vada bene ...

    SELECT
    RIGHT ('00' + CAST(GIORNO AS varchar(2)), 2)
    +RIGHT ('-' , 1)
    + RIGHT ('00' + cast (MESE AS VARCHAR(2)), 2)
    + RIGHT ('-', 1)
    + CAST (ANNO AS VARCHAR(4))
    as DATA

    FROM .....

  6. #6
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Pero quello non è un reale formato "datetime"
    bensi è un formato testo a cui è stata applicata la " formattazione " data

    potresti avere 35-02-2011 fra le date
    ( e non lo puoi neanche ordinare in crescente/desc )

    __________________________________________________ ____

    se vuoi un vero datetime devi usare un ulteriore CAST
    quindi la query che ci proponi diventa:
    codice:
    CAST(RIGHT ('00' + CAST(giorno AS varchar(2)), 2) + RIGHT ('-', 1) + RIGHT ('00' + CAST(mese AS VARCHAR(2)), 2) + RIGHT ('-', 1) + CAST(anno AS VARCHAR(4)) AS datetime)
    oppure io farei cosi: ( ma è solo una questione di gusto )
    codice:
    CAST(CAST(giorno AS varchar) + N'/' + CAST(mese AS varchar) + N'/' + CAST(anno AS varchar) AS datetime)
    Ma dopo queste 2 query ti vanno in errore se un utente ti scrive 32-01-2011


    __________________________________________________ _____________


    Una domanda, perche nel tuo codice metti: " RIGHT ('-', 1) "
    e non semplicemente " N'-' " ?????



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