2012-02-28 5 views
13

Ho bisogno di ottenere i record che sono stati inseriti nelle ultime 24 ore. Ho letto su di esso e ho capito che ho bisogno di usare il tipo DATETIME nella mia colonna di date MySQL.
Ma il mio problema è che non so come generare la data per il tipo MySQL DATETIME con PHP?
Come posso fare questo? Grazie in anticipo.Come generare la data per il tipo DATETIME di MySQL con PHP?

+3

Data la menzione di un tipo DATETIME, è importante notare che i negozi MySQL nient'altro che una stringa in un formato speciale. Quindi crei una stringa PHP nel formato YYYY-MM-DD HH: ii: ss e sei a posto. E sì, mi rendo conto che la domanda è vecchia di anni ma presumo che i futuri lettori arriveranno qui con un termine di ricerca che include "Tipo DATETIME" e troverà queste informazioni utili. – Patrick

risposta

37

Semplicemente

$mysql_date_now = date("Y-m-d H:i:s"); 

Perché DATETIME in MySQL è YYYY-MM-DD HH:ii:ss

9

Se siete alla ricerca solo di un modo per generare il datetime da inserire nel campo datetime basta utilizzare il seguente codice

$datetime = date('Y-m-d H:i:s') ; 

o per lo SQL diretta

INSERT INTO {TABLE} ({DATETIME}) VALUES (NOW()) 

Questo creerà una data che sembra

2012-02-28 16:44:25 

Se siete alla ricerca per la query per ottenere le ultime 24 ore di utilizzo

SELECT * FROM tablename WHERE date_field > NOW() - interval 1 day 
+0

Voglio solo aggiungere questo qui - Credo che se si utilizza la funzione 'sql now()' creerà il tempo a seconda di dove è il server, non dove sei. Se il server si trova in un altro paese o regione con un fuso orario diverso, utilizzerà il fuso orario in cui si trova il server anziché il proprio. – James111

+0

James111: dipende da quale sia il fuso orario del server. Se il fuso orario del server può essere impostato sulla posizione corrente, allora andrà bene. – bretterer

1

Ci sono due modi per andare:

  1. Utilizzare una rappresentazione testuale - qualcosa come:

    <?php 
        $year=2012; $month=2; $day=27; 
        $hour=22; $minute=44; $second=58; 
    
        $sql="SELECT something FROM something WHERE datecolumn>='$year-$month-$day $hour:$minute:$second'"; 
    ?> 
    
  2. farlo direttamente in SQL

    SELECT something FROM something WHERE datecolumn >= DATE_SUB(NOW(), INTERVAL 1 DAY); 
    
+0

I Non so perché l'editor insista per numerare questo 1. e 1., dovrebbe essere 1. e 2. –

Problemi correlati