Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66

    [MySQL Query] Eseguo query con date e non ottengo nulla

    Ciao a Tutti,

    cerco di far eseguire questa query:
    Codice PHP:
    select *,pratiche.id as idP,piani.data as dataP from pratiche INNER JOIN piani ON pratiche.id=piani.id_pratica where piani.tipo='2' and pratiche.stato='1' and 1a_data_ric_doc='0000-00-00' AND data_audit between '2014-01-01' AND '2014-01-15' order by dataP 
    La eseguo da phpmyadmin e da script.

    Mi viene fuori la scritta "in caricamento" e quando scompare, non fa nulla, non da errore ma non mi da nemmeno risultati oppure insieme vuoto o non ci sono risultati per la query selezionata.

    Avete idee ?? Grazie.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    quel select * iniziale suona strano... non specifichi da quale tabella della join deve estrarti tutti i campi...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Ciao,

    anche per semplicità di lettura conviene inserire sempre il nome della tabella prima di ogni campo

    codice:
    select pratiche.*,
    pratiche.id as idP,
    piani.data as dataP 
    from pratiche 
    INNER JOIN piani ON pratiche.id=piani.id_pratica 
    where piani.tipo='2' 
    and pratiche.stato='1' 
    and 1a_data_ric_doc='0000-00-00' 
    AND data_audit between '2014-01-01' AND '2014-01-15' 
    order by dataP
    a che tabella fanno riferimento e di che tipo sono i field
    1a_data_ric_doc
    data_audit


    comunque, la query mi sembra essenzialmente corretta, se i campi sopraindiocati sono varchar, e mi farebbe pensare a nessun record selezionato.
    Ultima modifica di 123delphi321; 16-05-2014 a 08:45

  4. #4
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    Tutti i campi data sono in formato data ( 0000-00-00 ), provo a specificare la tabella e vi faccio sapere!Grazie in anticipo!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Quote Originariamente inviata da Van83 Visualizza il messaggio
    Tutti i campi data sono in formato data ( 0000-00-00 ), provo a specificare la tabella e vi faccio sapere!Grazie in anticipo!
    mi suona strano fare un confronto tra un field data e una variabile string

    Quote Originariamente inviata da Van83
    and 1a_data_ric_doc='0000-00-00'
    AND data_audit between '2014-01-01' AND '2014-01-15'
    credo che devi usare una funzione di conversione dataTostring o viceversa
    Ultima modifica di 123delphi321; 16-05-2014 a 09:31

  6. #6
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    Quindi non devo mettere gli apici nelle date del between ?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    non si trata degli apici, ma il confronto tra un field ed un parametro l puoi fare solo se sono dello stesso tipo.
    quindi o confronti data vs data o string vs string

    quindi, penso devi scrivere qualcosa di simile:

    codice:
    select pratiche.*,
    pratiche.id as idP,
    piani.data as dataP 
    from pratiche 
    INNER JOIN piani ON pratiche.id=piani.id_pratica 
    where piani.tipo='2' 
    and pratiche.stato='1' 
    and TO_CHAR(1a_data_ric_doc, 'YYYY-MM-DD')='0000-00-00' 
    AND TO_CHAR(data_audit, 'YYYY-MM-DD') between '2014-01-01' AND '2014-01-15' 
    order by dataP
    ricorda sempre di specificare il nome tabella prima del nome field!

    non ho potuto testare l'esempio, ma penso ti dia un'idea....

    http://www.sqlines.com/mysql-to-oracle/date_format

  8. #8
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    Ah, ok ok, ma la cosa strana è che se dalla mia query elimino la parte del between,

    AND data_audit between '2014-01-01' AND '2014-01-15'
    La query viene eseguita correttamente.

    Provo a verificare!

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Quote Originariamente inviata da Van83 Visualizza il messaggio
    Ah, ok ok, ma la cosa strana è che se dalla mia query elimino la parte del between,



    La query viene eseguita correttamente.

    Provo a verificare!

    ci sono record che verificano la condizione between?

    metti il nome tabella prima dei field.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    mi suona strano fare un confronto tra un field data e una variabile string
    Anche a me, ma prima di MySQL 5.6 e MariaDB 10.0 non c'era una sintassi per fare diversamente, e in ogni caso lo fanno tutti. L'alternative compatibile con 5.5 e più vecchie è convertire esplicitamente con CAST o CONVERT, ma questo è concettualmente sbagliato, perché una conversione che avviene in automatico è sempre meglio di una ottenuta con quelle funzioni.

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