In MySQL, il TIMESTAMP() La funzione restituisce un valore datetime basato sugli argomenti passati. È possibile fornire uno o due argomenti. Se ne fornisci due, aggiunge il secondo al primo e restituisce il risultato.
Sintassi
Puoi utilizzare uno di questi due moduli:
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
Il primo argomento (expr e expr1 ) è un'espressione di data o data e ora. Il secondo argomento (expr2 ) è un'espressione del tempo. Se fornisci due argomenti, expr2 viene aggiunto a expr1 e il risultato è un valore datetime.
Esempio 1 – Fornisci un argomento "data"
In questo esempio fornisco un'espressione di data.
SELECT TIMESTAMP('1999-12-31');
Risultato:
+-------------------------+
| TIMESTAMP('1999-12-31') |
+-------------------------+
| 1999-12-31 00:00:00 |
+-------------------------+
Quindi il risultato è un valore datetime indipendentemente dal fatto che il nostro argomento fosse un'espressione date o datetime.
Esempio 2:fornisci un argomento "datetime"
Ed ecco un esempio che utilizza un'espressione datetime.
SELECT TIMESTAMP('1999-12-31 23:59:59');
Risultato:
+----------------------------------+
| TIMESTAMP('1999-12-31 23:59:59') |
+----------------------------------+
| 1999-12-31 23:59:59 |
+----------------------------------+
Esempio 3 – Includi frazioni di secondi
Puoi anche includere una parte di secondi frazionari fino a microsecondi (6 cifre). Quando lo fai, il risultato includerà anche quella parte.
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
Risultato:
+-----------------------------------------+
| TIMESTAMP('1999-12-31 23:59:59.999999') |
+-----------------------------------------+
| 1999-12-31 23:59:59.999999 |
+-----------------------------------------+
Esempio 4 – Fornire 2 argomenti
Ecco un esempio che utilizza due argomenti. Come accennato, il secondo viene aggiunto al primo.
SELECT TIMESTAMP('1999-12-31', '12:30:45');
Risultato:
+-------------------------------------+
| TIMESTAMP('1999-12-31', '12:30:45') |
+-------------------------------------+
| 1999-12-31 12:30:45 |
+-------------------------------------+
Esempio 5 – Valori "time" più grandi
Il tipo di dati temporali può avere un intervallo da -838:59:59 a 838:59:59 . Questo perché non si limita solo a rappresentare l'ora del giorno. Potrebbe anche essere usato per rappresentare il tempo trascorso. In questo caso, lo utilizziamo per aggiungere un numero elevato di ore a un valore di data.
SELECT TIMESTAMP('1999-12-31', '400:30:45');
Risultato:
+--------------------------------------+
| TIMESTAMP('1999-12-31', '400:30:45') |
+--------------------------------------+
| 2000-01-16 16:30:45 |
+--------------------------------------+
Esempio 6 – Valori negativi
Puoi sottrarre il secondo argomento dal primo, semplicemente anteponendo al secondo valore un segno meno.
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
Risultato:
+---------------------------------------+
| TIMESTAMP('1999-12-31', '-400:30:45') |
+---------------------------------------+
| 1999-12-14 07:29:15 |
+---------------------------------------+
Esempio 7:utilizzo della data corrente
Se desideri un timestamp che utilizzi la data corrente, potresti essere più interessato a funzioni come NOW() , CURDATE() e possibilmente anche SYSDATE() (per la differenza, vedere SYSDATE() rispetto a NOW() ).
Tuttavia, il TIMESTAMP() funzione potrebbe essere ancora la tua funzione preferita in alcuni casi, ad esempio se desideri aggiungere un valore di tempo alla data corrente.
SELECT
TIMESTAMP(CURDATE()) AS 'Today',
TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
Risultato:
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
La funzione TIMESTAMPADD()
Puoi usare il TIMESTAMPADD() funzione per aggiungere un'unità specificata a un valore di data o ora. Questa funzione accetta anche unità come giorni, mesi, anni, ecc.
Se trovi TIMESTAMP() troppo restrittivo per le tue esigenze, vedi TIMESTAMPADD() Esempi.