Come ottenere il valore timestamp della data corrente in MySql
—
Giorgio Borelli
Se avete necessità di sapere e recuperare il valore della data corrente in timestamp in una query MySql, il noto RDBMS ci viene incontro con una funzione che ci facilita la vita.
Come saprete il timestamp è un tipo di dato usato nella trattazione delle date che indica con un intero senza segno il numero di secondi trascorsi dal 1 Gennaio 1970 ad oggi. Sebbene sia in PHP che in MySql esiste il "tipo" Date per l'implementazione di funzioni sulle date ed il tempo, il timestamp essendo come detto un intero, un tipo primitivo e facilmente trattabile, viene spesso usato e semplifica il lavoro degli sviluppatori durante la trattazione delle informazioni temporali.
Ricavare il valore attuale del timestamp in php è semplicissimo basta richiamare la funzione mktime() o la più recente time(), ma se volessimo avere la data corrente in timestamp direttamente in una query MySql, magari per filtrare alla sorgente i nostri dati e non portaceli fino al codice di programmazione come dovremmo fare? Beh! Anche in questo caso è semplicissimo, MySql mette a disposizione svariate funzioni per la trattazione dei valori temporali, e per ricavare il valore attuale del timestamp ci fornisce la funzione UNIX_TIMESTAMP(), che se invocata senza parametri ritorna un intero senza segno rappresentate i numeri di secondi trascorsi dal '1970-01-01 00:00:00' UTC ad oggi.
Possiamo usare questa funzione agevolmente nelle nostre query sql come preferiamo, per assegnazioni, confronti o altro, ad es. se volessimo ricavare da una tabella i soli record con data inferiore a quella attuale potremmo scrivere così:
SELECT * FROM my_table WHERE time_my_campo<UNIX_TIMESTAMP();
Ovviamente anche il campo del nostro record che viene confrontato con UNIX_TIMESTAP() deve essere dello stesso tipo del timestamp, ovvero un intero. Semplice No?