Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22

Discussione: SQL e campo Date

  1. #11
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    578
    Penso che se lo setti in datetime nn puoi cambiare la sua formatttazione all'interno del db ma ovviamente puoi cambiare questa quando usi l'informazione all'interno di un'applicazione. Solitamente i db hanno anche il tipo Date che contempla solo giorno mese ed anno ma di preciso nn ricordo per quele motivo nn lo uso mai



  2. #12
    Originariamente inviato da x69asterix
    ho settato il campo a datetime ho inserito un nuovo recor e il campo settato a datetime mi inserisce anche le ore.
    c'è una via d'uscita
    Dalla versione 2008 di SqlServer sono stati introdotti tra gli altri il tipo di dato "Date" e il tipo di dato "Time". Se non hai bisogno dell'orario nella tua colonna, usa Date. Occupa meno spazio su disco e non ti costringe a formattare la data.
    Per il resto, se usi una data cerca di usare un campo Date o DateTime (non varchar quindi). Se non vuoi avere problemi di formato delle date, utilizza i parametri quando esegui le query invece di incollare i valori come fossero tutti di tipo string.
    Si può anche aggiungere che sql server ti mette a disposizione tutte le funzioni che possono servire per trattare le date o trattare il testo come fosse una data.
    Qualche esempio:
    codice:
    SELECT DAY(CONVERT(datetime, '1970-05-18', 101)) AS Giorno, MONTH(CONVERT(datetime, '1970-05-18', 101)) AS Mese, YEAR(CONVERT(datetime, '1970-05-18', 101)) AS Anno
    codice:
    Giorno      Mese        Anno
    ----------- ----------- -----------
    18          5           1970
    codice:
    SELECT CAST('1970-05-18 14:23:05' AS date)
    codice:
    1970-05-18
    Saluti a tutti
    Riccardo

  3. #13
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    ciao,

    ma nel mio codice come faccio ad adattare quanto descritto?

    codice:
         Dim dataAdapter = New Data.SqlClient.SqlDataAdapter("SELECT  ID, Numero, oggetto, data from archivio where Anno = " & Date.Today.Year & " order by data asc", cn)
            Dim commandBuilder = New Data.SqlClient.SqlCommandBuilder(dataAdapter)
            DataSet = New Data.DataSet
            dataAdapter.Fill(DataSet)
            GridView1.DataMember = "scrivente"
            GridView1.DataSource = DataSet.Tables(0)
            GridView1.DataBind()
    così mi ritorna oltra la data anche le ore

  4. #14
    Originariamente inviato da x69asterix
    ma nel mio codice come faccio ad adattare quanto descritto?
    Prendi la tua query e provi a modificarla usando come traccia gli esempi che ti ho fatto.
    Per vedere se la query ti torna quello che vuoi e come lo vuoi, è più comodo se utilizzi un tool come Management Studio dove puoi aprire una finestra di query e fare tutte le tue prove. Anche visual studio ti mette a disposizione la finestra server explorer e la possibilità di eseguire query sul db anche se è meno comodo di management studio.

    Per quanto riguarda il codice che hai scritto, non mi sembra ci sia bisogno di usare il commandbuilder e in più non stai usando i parametri nel where come ti è stato consigliato.
    es. con parametro
    codice:
    Dim dataAdapter = New Data.SqlClient.SqlDataAdapter("SELECT  ID, Numero, oggetto, data from archivio where Anno = @anno order by data asc", cn)
            dataAdapter.SelectCommand.Parameters.Add("@anno", SqlDbType.Int).Value = DateTime.Now.Year
    ' ....
    Saluti a tutti
    Riccardo

  5. #15
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    bo..
    mi stò rincoglionen...

    io con la query da me postata non ho difficoltà a visualizzare il risultato in dgw!!
    il problema è solo che oltre la data mi visualizza anche le ore!!
    cosa invece che non voglio.

  6. #16
    codice:
    SELECT  ID, Numero, oggetto, CONVERT(char(10),data,103) as Data from archivio where Anno = " & Date.Today.Year & " order by data
    per favore non perdetevi in un bicchiere d'acqua... 103 cmq è lo standard dd/MM/yyyy
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  7. #17
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    P e r f e t t o

  8. #18
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    giusto per chiudere il post
    in quale forma corretta faccio l'insert?
    io la data la prendo da:
    Calendar1.SelectedDate
    è un formato corretto?

  9. #19
    tel'ho scritto "ANNI Fà"....
    Originariamente inviato da RoBYCoNTe
    codice:
    INSERT INTO Tabella(data) VALUES('20100101')
    per renderti conto che quanto ti ho detto funziona fai questo test:
    codice:
    SET NOCOUNT ON
    CREATE TABLE X(D DATETIME)
    
    INSERT INTO X VALUES ('20100101')
    SELECT * FROM X
    
    DROP TABLE X
    [strong]YYYYMMDD[/strong]
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  10. #20
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    quindi se da management
    eseguo quanto mi hai detto
    il risultato è
    2010-01-01 00:00:00.000
    cosa significa?
    io con Calendar1.SelectedDate
    ho già inserito dei record con il campo settato a datetime :master:
    è non credo che sia lo stesso formato.

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