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.