Visualizzazione dei risultati da 1 a 8 su 8

Discussione: date e database

  1. #1

    date e database

    Ciao!

    Ho creato questa select, che teoricamente mi dovrebbe estrarre dal database il primo record con il campo datainz > ad ora, ma non funziona!!! Come mai??

    Codice PHP:
    $now=time();
    $selcont=pg_Exec($conn,"select * from qc_gare,qc_champs where qc_gare.datainz>$now ORDER BY qc_gare.datainz ASC LIMIT 1"); 
    PS: il campo datainz è un campo date (formato di postgresql, e - scusate l'ignoranza - non so come si relazioni con php e/o con altri database...

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    select * from qc_gare,qc_champs where qc_gare.datainz>now() ORDER BY qc_gare.datainz ASC LIMIT 1

    Non hai bisogno di usare una variabile php, esiste già nel database la funzione now()

  3. #3
    ciao grazie ora funziona! strano però perchè avevo già provato con now() e mi dava dei problemi..
    vorrei però chiederti una cosa: now() che formato restituisce? è un timestamp?

    io posso confrontare una variabile di tipo date di postgresql con una di tipo intero (timestamp)?

    quando io visualizzo la data in formato date nel database tramite pgadmin la vedo scritta come 2007-04-02.. se io passo una variabile stringa con questi valori, la posso confrontare con la variabile date o quello che vedo tramite pgadmin è solo un output che non ha nulla a che vedere con la reale struttura della variabile?

    non so se mi sono spiegata :master:

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non è che mi intenda granché di postgresql, non ci lavoro da secoli.

    Attenta comunque a non confondere i timestamp del db (come quello restituito da now()), che sono valori con precisione al microsecondo, con i timestamp UNIX, che sono degli interi e rappresentano i secondi trascorsi dal 1/1/1970.

    I valori di tipo date e affini hanno una loro rappresentazione interna che viene convertita in formato visualizzabile quando i dati vanno in output, così come ovviamente devono essere accettati alcuni formati in input. Col formato che hai indicato tu '2007-04-02' dovresti essere sempre tranquilla.

    Comunque la documentazione al riguardo la trovi qui e qui

  5. #5
    mmm ma il timestamp che ottengo con la funzione time() di php è unix?

    e se io faccio una cosa del genere:

    $i=2;
    $m=date('m',$timestamp);
    $a=date('Y',$timestamp);

    $data=$a".-."$m".-."$i;

    e faccio una select che mi estrae il valore date della riga del database se date = $data, funziona secondo te? o è una cavolata?

  6. #6

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da elysaweb
    mmm ma il timestamp che ottengo con la funzione time() di php è unix?

    e se io faccio una cosa del genere:

    $i=2;
    $m=date('m',$timestamp);
    $a=date('Y',$timestamp);

    $data=$a".-."$m".-."$i;

    e faccio una select che mi estrae il valore date della riga del database se date = $data, funziona secondo te? o è una cavolata?
    Sì alla prima e sì alla seconda, se non ci sono errori nella concatenazione di virgolette e puntini.
    Fra parentesi continuo a non capire perché vi piaccia tanto farvi del male in quel modo.
    Codice PHP:
    $data="$a-$m-$i"
    Non è molto più semplice da scrivere e da leggere?

    P.S. nella query il valore della data va messo fra apici

  8. #8
    e con questa sintassi posso anche fare un confronto del tipo:

    select * from eventi where data>='$data'

    con $data="$a-$m-$i" ?

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.