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

    Heidi SQL _ Set con campo di tipo DATE

    Buongiorno a tutti,

    Ho sempre usato altri software come il management studio Microsoft o anche l'emulatore iseries IBM.
    Da un pò sto usando (devo usare) Heidi SQL e la sintassi è un pò diversa.

    Alcune variazioni sono intuitive altre anche cercando in rete non trovo risposte.

    Se faccio un insert con sotto l'istruzione SET con i campi e scrivo un campo data nel formato AAAA-MM-GG
    me lo riconosce come number e lo rifiuta perchè dovrebbe entrare in un campo Date. Ho provato diverse scritture ma nulla, non so e non ho capito come indicare che il campo è di tipo data.

    Avete soluzioni?

    Grazie (era da tantissimo che non usavo il fagiano: )
    Ultima modifica di Merrill Stubing; 21-09-2022 a 12:46
    Never try to teach a pig to sing. It wastes your time and annoys the pig

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    954
    Quote Originariamente inviata da Merrill Stubing Visualizza il messaggio
    Buongiorno a tutti,

    Ho sempre usato altri software come il management studio Microsoft o anche l'emulatore iseries IBM.
    Da un pò sto usando (devo usare) Heidi SQL e la sintassi è un pò diversa.

    Alcune variazioni sono intuitive altre anche cercando in rete non trovo risposte.

    Se faccio un insert con sotto l'istruzione SET con i campi e scrivo un campo data nel formato AAAA-MM-GG
    me lo riconosce come number e lo rifiuta perchè dovrebbe entrare in un campo Date. Ho provato diverse scritture ma nulla, non so e non ho capito come indicare che il campo è di tipo data.

    Avete soluzioni?

    Grazie (era da tantissimo che non usavo il fagiano: )
    Hai provato con la notazione MSSQL

    {d 'YYYY-MM-DD'} ?

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Per quale tipo di DBMS?
    Io ho appena installato HeidiSQL, l'ho fatto puntare ad un db SQL Server e ho inserito un record in questo modo senza problemi:

    codice:
    INSERT INTO Tabella
    VALUES(..., '2022-09-22', ...)
    Il campo nella tabella è di tipo DATE.
    "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

  4. #4
    Rispondo un pò ad entrambi:

    Il DB è un PostgreSQL.

    La query è strutturata così:

    INSERT INTO PAR_ALIQUOTE_COPY
    SELECT DISTINCT ALIQ_TIPO_IMP, ALIQ_TIPO_ISCR, ALIQ_TIPO_CONTR, 'APEOINT', 2016-05-01, NULL, 0, 0, 'O', NULL, 0 , 0, '0', 'APO', 0, ' ', 'G', ' ',0, ' ', 0
    FROM par_aliquote;

    (Per ogni combinazione dei primi tre campi inseriscimi una riga con gli altri valori fissi ...)

    Solo che ...
    visto che la data viene visualizzata in formato AAAA-MM-GG (Or in english: YYYY-MM-DD) ho replicato il formato, ma la sente come un number, non va bene neanche con gli apici perchè diventa un text ...

    ho provato con la funzione di conversione:

    TO_DATE(20160501, YYYYMMDD)
    Oppure :
    TO_DATE(2016-05-01, YYYY-MM-DD)

    e così via ma a furia di provare mi rendo conto che i messaggi di heidi sono abbastanza criptici per chi non sa precisamente cosa ci sia aspetta in quella posizione e colonna.



    Grazie
    Never try to teach a pig to sing. It wastes your time and annoys the pig

  5. #5
    Errore01.png

    questo è l'errore che compare quando metto la data in 'AAAA-MM-GG'
    Never try to teach a pig to sing. It wastes your time and annoys the pig

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Se usi la funzione TO_DATE i parametri devono essere di tipo stringa, quindi lì ci vanno gli apici.

    codice:
    TO_DATE('2016-05-01', 'YYYY-MM-DD')

    Per il valore grezzo, provo a documentarmi un attimino.
    Ultima modifica di LeleFT; 22-09-2022 a 18:08
    "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

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    E niente, la documentazione recita che le date vanno inserite tra apici.
    Può essere che ci sia una discordanza tra l'ordine dell'elenco dei campi nella SELECT e l'ordine dei campi nel DDL della tabella di destinazione? Io quando effettuo delle INSERT mi sono abituato (a suon di madonne) a esplicitare sempre tutti i campi della tabella di destinazione:

    codice:
    INSERT INTO Tabella(nomeCampo1, nomeCampo2, ..., nomeCampoN)
    SELECT nomeCampo1, nomeCampo2, ..., nomeCampoN
    FROM ...

    Questo ti evita errori nel caso in cui la tabella di destinazione abbia un ordine dei campi (o, addirittura, un numero di campi) diverso da quello della query di origine.
    Ultima modifica di LeleFT; 22-09-2022 a 18:09
    "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

  8. #8
    Quote Originariamente inviata da Merrill Stubing Visualizza il messaggio
    Rispondo un pò ad entrambi:

    Il DB è un PostgreSQL.

    La query è strutturata così:

    INSERT INTO PAR_ALIQUOTE_COPY
    SELECT DISTINCT ALIQ_TIPO_IMP, ALIQ_TIPO_ISCR, ALIQ_TIPO_CONTR, 'APEOINT', 2016-05-01, NULL, 0, 0, 'O', NULL, 0 , 0, '0', 'APO', 0, ' ', 'G', ' ',0, ' ', 0
    FROM par_aliquote;
    la data non l'hai messa tra apici, per sql è un numero (2010)

  9. #9
    Gli apici li ho messi, ed anche tolti, ho fatto numerose prove cercando prima tra quello che mi pareva ovvio come mia conoscenza pregressa e poi cercando in rete.

    Come da immagine:
    https://i.postimg.cc/C1n6Hffh/Date-F...gres-Heidi.png

    Il campo è precisamente il quinto sia in select che in inserimento, è proprio quel campo a darmi l'errore di formato.

    Quando metto gli apici 'AAAA-MM-GG' il messaggio è quello mostrato in figura e me lo sente come text.
    Never try to teach a pig to sing. It wastes your time and annoys the pig

  10. #10
    invece di ..., '2016-05-01', ... prova con ..., CONVERT(DATETIME, '2016-05-01'), ...

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.