Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    migrazione db (problema con date)

    ciao, ho un grosso problema.

    devo migrare il mio database sql.
    per fare ciò ho creato dei file insert dove ho quindi una serie di righe:

    INSERT INTO Accessi
    (id,idutente,codicefiscale,nome,cognome,clearance, datasistema)
    VALUES(2543,1,'webmaster','Marco','Lombardo',9,'01/04/2007 15.13.00');

    In precedenza sul nuovo database ho creato la tabella vuota.
    Il problema ce l'ho sull'ultimo campo, quello "datasistema" che in origine come vedete è popolato con campi del tipo '01/04/2007 15.13.00', contenuti in un campo SMALLDATETIME.

    Quando eseguo l'insert, mi esce l'errore:

    The conversion of a char data type to a smalldatetime data type resulted in an out-of-range datetime value.

    Ho provato anche a covertire in datetime, ma l'errore è il medesimo.
    Funziona solo se converto il campo in nvarchar, ma poi ho dopo un problema a riconvertire il campo in smalldatetime.

    Sto impazzendo, qualcuno sa aiutarmi??

    Grazie tante.
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Se specifichi anche di che tipo di DB si tratta, probabilmente qualcuno ti potrebbe dare ulteriori informazioni o segnalarti un modo più veloce per risolvere il tuo problema.

    Oltretutto, il DBMS usato andrebbe specificato anche nel titolo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Il database di origine e di destinazione è sempre un SQL2005.

    Grazie LeleFT.
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  4. #4
    Niente?
    Ci sto sbattendo la testa ma non riesco a venirne fuori ...
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    Ma io le date le inserisco sempre usando la funzione convert datetime

    es: CONVERT(DATETIME, 'aaaa-mm-gg hh:mm:ss', 102)
    e non ho mai avuto problemi (con campi di timo DateTime però, nel tuo caso prova a sostituire DATETIME con SMALLDATETIME)

    Cmq penso che la soluzione sia nell'utilizzare questa funzione... prova a dare un occhiata a questa pagina

    http://databases.aspfaq.com/database...to-string.html

  6. #6
    Non credo di aver capito ... quando devo specificare questa stringa e se va bene inserire CONVERT(DATETIME, 'dd/mm/yyyy hh:mm:ss', 102)

    Ho poi notato un altra cosa:
    su un altra tabella ho un trigger attivo che inserisce la data corrente.
    Prima di fare i numerosi test la data che mi inseriva era 'dd/mm/yyyy hh:mm:ss', adesso esce una roba del tipo Apr 2 etc.etc.
    Posso ripristinarla come era prima?

    Graziiieee!
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  7. #7
    up up
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  8. #8

    Arithmetic overflow error converting expression to data type smalldatetime

    Comunque per riassumere a beneficio di qualche buon cristiano che mi possa aiutare, il problema adesso è il seguente:

    Database sql 2005 con tabelle contenenti campi nvarchar(20) nelle quli si trovano stringhe del tipo "31/12/2006 15.30.00".

    Il problema è che quando le converto in SMALLDATETIME o in DATETIME il sistema mi restituisce un laconico:

    Arithmetic overflow error converting expression to data type smalldatetime.

    Vi prego se avete qualche suggerimento fatevi avanti.

    Grazie, Marco.

    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    Ah ma tu usi un campo nvarchar(20) nel database!? Questo nn si capiva
    Cmq perchè non usi direttamente un campo DateTime (cioè cambiare il tipo di dato di datasistema), è fatto apposta per essere usato ed evitare casini di conversioni ^^

  10. #10
    Certo Dave, ma il problema è proprio quello.
    (vedi primo msg) In origine la mia tabella aveva un campo smalldatetime, ma poi quando tento di popolare la tabella su un altro database, mi esce l'errore:

    The conversion of a char data type to a smalldatetime data type resulted in an out-of-range datetime value.

    L'unico modo per migrare i dati è stato quello di creare una tabella con campi nvarchar(20), ma ovviamente poi il mio sito non interpreta i dati come data ...
    Provo quindi a convertire il campo ma mi esce sempre:

    Arithmetic overflow error converting expression to data type smalldatetime.

    E' un casino ... ho le mie stringhe "31/12/2006 15.30.00" ma non riesco a fare la conversione del campo.

    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

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