Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: problema con la data

  1. #1

    problema con la data

    Ciao gente :adhone:

    ho un problema con l'inserimento della data in un db Microsoft SQL

    con php e mysql faccio in questo modo:

    Codice PHP:
    $query "INSERT INTO news (datains,titolo,news) VALUES (NOW(),'$titolo','$news')"
    dove datains è un campo di tipo datetime ed il now mi restituisce la data nel seguente modo:
    Y-m-d H:i:s

    facendo questo sempre con PHP ma usando appunto il db SQL la funzione NOW non va (dice che non esiste questa funzione).
    Premetto che il campo datains è di tipo smalldatetime e che usando GETDATE() invece che NOW() il tutto funziona ma GETDATE mi restitiuisce la data in formato: d-m-Y H:i:s e a me non va bene.
    Come devo fare? Ho guardato sulla guida in linea di sql server ma niente

    ps: una soluzione ce l'avrei, ossia quella di comporre prima la data e poi inserirla nel db, ma vorrei fare una cosa diretta, senza troppi passaggi (se possibile)

    Grazie

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  2. #2
    up

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  3. #3
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    una cosa è come metti la data nel campo, un'altra è come la tiri fuori.
    nel tuo caso ti consiglio di usare getdate() per metterla, e poi le funzioni SQL year, month, day, ecc... per farci delle ricerche o estrarre porzioni di data

    così gestisci tutto a livello di database e non sei costretto a fare un mix di codice sql e php (o asp)

    altra possibilità è usare invece del campo data un campo nvarchar ed usare una sp per formattare la data nel formato che scegli (ad es. aaammdd)
    Tutti vogliono parlare, nessuno sa ascoltare.

  4. #4
    per estrarre date nel formato corretto vai a controllare nell'help la funzione CONVERT()

    ad es:
    SELECT Convert( Varchar(20) , miadata , 103) as miaData_it
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

  5. #5
    ... scusa non avevo finito e mi è scappato il mouse sull'invio risposta....

    comunque il concetto è quello....
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

  6. #6
    grazie per le risposte


    però non ci siamo...


    mi spiego meglio:

    per inserire i dati faccio questo:

    Codice PHP:
    $query "INSERT INTO news (datains,titolo,news) VALUES (getdate(),\"$titolo\",\"$news\")"
    così facendo nel campo datains mi ritrovo la data in questo formato:
    26/04/2004 10.56.00

    io invece vorrei averla in quest'altro formato:
    2004/04/26 10.56.00

    però getdate() non accetta parametri

    e poi quando vado recuperare i dati con la SELECT faccio come dice dieghito101 usando CONVERT e lo stile che mi serve (ossia 105)

    @Gioba66
    codice:
    altra possibilità è usare invece del campo data un campo 
    nvarchar ed usare una sp per formattare la data nel formato 
    che scegli (ad es. aaammdd)
    facendo così, quando prelevo i dati posso sempre usare la funzione CONVERT?

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  7. #7
    nella INSERT potresti usare lo stesso metodo :


    INSERT INTO Miatab ( miadata)
    VALUES ( CONVERT( VARCHAR (10) , GETDATE() , 112) + ' '
    + CONVERT(VARCHAR (8) , GETDATE() , 108) )

    dove mi compongo la data come 'yyyymmdd hh:mm:ss'

    uso il convert 112 perche' non e' influenzato dalle impostazioni del DB + convert 108 che e' l'ora
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

  8. #8
    Prova a fare così:

    $query = "INSERT INTO news (datains,titolo,news) VALUES (cast(\"$ MiaData\" as Smalldatetime),\"$titolo\",\"$news\")";

    poi fammi sapere!

  9. #9
    aspetta un secondo ....

    dopo la risposta di stamattina rileggevo la domanda iniziale e non riesco ancora a capire quale sia il tuo problema!

    la insert che fai è più che giusta , la select con il convert 105 per tirare fuori i dati te li tira fuori come vuoi tu... ma allora quale è il problema?
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

  10. #10
    Originariamente inviato da dieghito101
    aspetta un secondo ....

    dopo la risposta di stamattina rileggevo la domanda iniziale e non riesco ancora a capire quale sia il tuo problema!

    la insert che fai è più che giusta , la select con il convert 105 per tirare fuori i dati te li tira fuori come vuoi tu... ma allora quale è il problema?
    il problema è che dentro al db io devo avere la data nel formato

    ANNO - MESE - GIORNO

    mentre il getdate() mi ritorna la data come GIORNO - MESE - ANNO

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

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.