Timestamp corrente MySQL: Come ottenere data e ora attuali (NOW, SYSDATE, UTC_TIMESTAMP)

目次

1. Introduzione

Ottenere l’ora corrente in MySQL è una parte fondamentale della gestione del database.
Ad esempio, potresti aver bisogno di recuperare l’ora corrente in situazioni come le seguenti:

  • Registrare automaticamente un timestamp di creazione durante l’inserimento dei dati (ad es., un timestamp quando un nuovo utente si registra)
  • Registrare gli orari di accesso degli utenti (ad es., gestire la cronologia dei login)
  • Recuperare dati entro un determinato intervallo di tempo (ad es., ottenere la cronologia degli ordini delle ultime 24 ore)
  • Registrare i log di esecuzione del sistema (ad es., gestire i log di errori e di eventi)

Come puoi vedere, recuperare correttamente l’“ora corrente” per la gestione dei dati e dei log è essenziale per gestire un database.

In questo articolo, spiegheremo come ottenere l’ora corrente in MySQL in dettaglio usando query SQL reali.
Tratteremo anche le differenze tra le funzioni più comunemente usate, come scegliere quella giusta e forniremo esempi pratici di query—utili sia per principianti che per utenti di livello intermedio.

2. Funzioni MySQL per Ottenere la Data/Ora Corrente (Tabella Comparativa)

MySQL fornisce diverse funzioni per recuperare l’ora corrente.
Scegliere la funzione giusta per il tuo caso d’uso è importante, ma molte persone trovano le differenze confuse.

In questa sezione, confrontiamo le funzioni principali usate per ottenere la data/ora corrente in MySQL e ne spieghiamo le caratteristiche in dettaglio.

2.1 Tabella Comparativa delle Funzioni Temporali MySQL

FunctionWhat it returnsFormatNotes
NOW()Current date and timeYYYY-MM-DD HH:MM:SSMost commonly used
SYSDATE()Date and time at executionYYYY-MM-DD HH:MM:SSUnlike NOW(), it can change on each execution
CURTIME()Current timeHH:MM:SSTime only (no date)
CURRENT_TIME()Current timeHH:MM:SSSame as CURTIME()
CURRENT_TIMESTAMP()Current date and timeYYYY-MM-DD HH:MM:SSAlmost the same as NOW()
UTC_TIMESTAMP()Current UTC date and timeYYYY-MM-DD HH:MM:SSTime zone is fixed to UTC

Dalla tabella sopra, la maggior parte delle funzioni restituisce sia la “data e ora corrente” sia l “ora corrente”, ma la funzione migliore dipende dal tuo scopo.

2.2 Panoramica e Caratteristiche di Ogni Funzione

Funzione NOW()

  • La funzione più comune per ottenere la data e l’ora corrente
  • Restituisce l’ora al momento in cui inizia l’istruzione SQL
  • Spesso usata per i timestamp durante l’inserimento o l’aggiornamento dei dati
    SELECT NOW();
    

Esempio di output

2025-02-14 15:30:45

Funzione SYSDATE()

  • Ottiene l’ora corrente al momento dell’esecuzione
  • A differenza di NOW(), SYSDATE() può restituire un valore diverso ogni volta che viene valutata (può cambiare anche all’interno di una transazione)
    SELECT SYSDATE();
    

Esempio di output

2025-02-14 15:30:47

Funzione CURTIME()

  • Restituisce solo l’ora (HH:MM:SS)
  • Utile quando la data non è necessaria
    SELECT CURTIME();
    

Esempio di output

15:30:45

Funzione CURRENT_TIME()

  • Funziona come CURTIME()
  • Nome della funzione conforme allo standard SQL
    SELECT CURRENT_TIME();
    

Esempio di output

15:30:45

Funzione CURRENT_TIMESTAMP()

  • Si comporta come NOW()
  • Può essere specificata come valore di colonna DEFAULT (spesso più appropriato di NOW() per i valori predefiniti)
    SELECT CURRENT_TIMESTAMP();
    

Esempio di output

2025-02-14 15:30:45

Impostata come valore predefinito durante la creazione di una tabella:

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Funzione UTC_TIMESTAMP()

  • Ottiene l’UTC corrente (Coordinated Universal Time)
  • Non dipende dal fuso orario del server, consentendo timestamp coerenti
    SELECT UTC_TIMESTAMP();
    

Esempio di output

2025-02-14 06:30:45

2.3 Quale Funzione Dovresti Usare?

Use caseRecommended function
Get the current date and timeNOW()
Get a different timestamp each time within a transactionSYSDATE()
Need only the current time (HH:MM:SS)CURTIME() or CURRENT_TIME()
Set as a table default valueCURRENT_TIMESTAMP()
Get UTC timeUTC_TIMESTAMP()

In generale, per il recupero tipico di data/ora, NOW() è solitamente la scelta giusta.
Tuttavia, scegliere la funzione più adatta al tuo caso d’uso consente operazioni sui dati più flessibili e affidabili.

3. Dettagli della Funzione NOW()

La funzione MySQL NOW() è la più comunemente usata per ottenere la data e l’ora corrente (data + ora).
È ampiamente usata per memorizzare i timestamp nel database e per recuperare dati entro intervalli di tempo specifici.

3.1 Uso Base di NOW()

Sintassi di NOW()

SELECT NOW();

Esempio di output

2025-02-14 15:30:45
  • Il formato di output è YYYY-MM-DD HH:MM:SS (anno-mese-giorno ora:minuto:secondo).
  • L’ora viene recuperata in base alle impostazioni del fuso orario predefinito di MySQL.

3.2 Casi d’uso comuni per NOW()

① Registra l’ora corrente durante l’inserimento dei dati

Quando si inseriscono dati in un database, è possibile utilizzare NOW() per registrare un timestamp di creazione.

INSERT INTO users (name, created_at) VALUES ('Sato', NOW());

② Registra l’ora corrente durante l’aggiornamento dei dati

UPDATE users SET last_login = NOW() WHERE id = 1;

③ Recupera dati da un determinato intervallo di tempo

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 1 DAY;
  • Specificando INTERVAL 1 DAY, è possibile recuperare “dati dell’ultimo giorno”.

3.3 Tipo di ritorno e come modificare il formato di output

Tipo di ritorno di NOW()

  • Tipo DATETIME ( YYYY-MM-DD HH:MM:SS )
  • Può anche essere trattato come una stringa
    SELECT NOW(), typeof(NOW());
    

Come cambiare il formato

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_time;

Esempio di output

2025-02-14 15:30:45

3.4 Differenze tra NOW() e SYSDATE()

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeCan return different timestamps within the same statement
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

Esempio di output

NOW()        | SLEEP(3) | NOW()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:48

🚨 Se lavori con le transazioni, NOW() è consigliato per la coerenza.

3.5 Limitazioni e note per NOW()

① Dipende dal fuso orario

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

② Per i valori predefiniti delle tabelle, usa CURRENT_TIMESTAMP

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

3.6 Riepilogo di NOW()

  • NOW() è la funzione più comune per ottenere la data e l’ora correnti in MySQL.
  • Può essere usata per inserimenti, aggiornamenti e per recuperare dati basati sul tempo.
  • Usa NOW() quando ti serve un timestamp coerente all’interno di una transazione.
  • SYSDATE() restituisce un’ora diversa a ogni valutazione, quindi usala quando hai bisogno dell’ora esatta di esecuzione.
  • Usa CONVERT_TZ() per ottenere l’ora in un fuso orario diverso.

📌 Conclusione: nella maggior parte dei casi, NOW() è la scelta migliore per ottenere la data e l’ora correnti in MySQL.

4. Caratteristiche della funzione SYSDATE()

La funzione SYSDATE() è un altro modo per ottenere la data e l’ora correnti in MySQL, ma si comporta in modo diverso da NOW().
In questa sezione spiegheremo l’uso base di SYSDATE(), come differisce da NOW() e le note importanti.

4.1 Cos’è SYSDATE()?

SYSDATE() è una funzione che restituisce l’ora al momento dell’esecuzione dell’istruzione.
A differenza di NOW(), restituisce un timestamp diverso ogni volta che viene valutata.

Sintassi di SYSDATE()

SELECT SYSDATE();

Esempio di output

2025-02-14 16:00:45
  • Restituito nel formato YYYY-MM-DD HH:MM:SS
  • Rappresenta il momento in cui la query viene eseguita

4.2 Differenze tra SYSDATE() e NOW()

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeReturns a different timestamp each time

Confronto di comportamento: NOW() vs SYSDATE()

SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

Esempio di output

NOW()        | SLEEP(3) | NOW()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:48

📌 Punti chiave

  • NOW() mantiene il timestamp dall’inizio dell’istruzione, quindi non cambia.
  • SYSDATE() restituisce un timestamp diverso ogni volta che viene valutata, quindi cambia dopo 3 secondi.

🚨 Usa NOW() per l’elaborazione delle transazioni

  • Poiché SYSDATE() può comportarsi diversamente da NOW() in ambienti multithread, NOW() è generalmente consigliato per la coerenza transazionale.

4.3 Esempi di utilizzo di SYSDATE()

① Registra l’ora corrente durante l’inserimento dei dati

INSERT INTO logs (event, created_at) VALUES ('User login', SYSDATE());

② Registra l’ora corrente durante l’aggiornamento dei dati

UPDATE users SET last_login = SYSDATE() WHERE id = 1;

③ Ottieni l’ora corrente in un formato specifico

SELECT DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%s') AS formatted_time;

Esempio di output

2025-02-14 16:05:30

4.4 Limitazioni e note per SYSDATE()

① Comportamento della transazione

  • NOW() mantiene il timestamp dall’inizio dell’istruzione , quindi può essere usato in modo coerente all’interno di una transazione.
  • SYSDATE() restituisce un timestamp diverso ogni volta , quindi può verificarsi un drift temporale all’interno di una transazione.

② Non può essere usato come valore DEFAULT

  • SYSDATE() non può essere impostato come valore DEFAULT di una colonna della tabella .

Soluzione: Usa DEFAULT CURRENT_TIMESTAMP.

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.5 Quando dovresti usare SYSDATE()?

Use caseRecommended function
Typical current timestamp retrievalNOW()
Use a consistent timestamp within a transactionNOW()
Need the exact execution timeSYSDATE()

🚀 SYSDATE() è adatto per la registrazione in tempo reale, ma non è ideale per l’elaborazione di transazioni.

4.6 Riepilogo di SYSDATE()

  • SYSDATE() recupera il timestamp al momento dell’esecuzione, a differenza di NOW().
  • Poiché può restituire valori diversi ogni volta, è utile per la registrazione in tempo reale.
  • Per la coerenza transazionale, si consiglia NOW().
  • Per i valori predefiniti, usa CURRENT_TIMESTAMP.

📌 Conclusione: per il recupero generale di timestamp, NOW() è il migliore; per tempi di esecuzione precisi, scegli SYSDATE().

5. CURTIME() e CURRENT_TIME()

Quando vuoi ottenere l’ora corrente in MySQL, CURTIME() e CURRENT_TIME() vengono usati quando ti serve solo l’ora (HH:MM:SS).
In questa sezione spiegheremo l’uso base, le differenze e esempi pratici per ciascuno.

5.1 Che cos’è CURTIME()?

CURTIME() è una funzione che ottiene l’ora corrente (ora, minuto, secondo) in MySQL.
La sua caratteristica principale è che non include la data—viene restituita solo la parte dell’ora.

Sintassi di CURTIME()

SELECT CURTIME();

Esempio di output

16:30:45
  • Formato: HH:MM:SS
  • Dipende dall’impostazione del fuso orario del server
  • A differenza di NOW(), è adatto quando non hai bisogno di informazioni sulla data

5.2 Che cos’è CURRENT_TIME()?

CURRENT_TIME(), come CURTIME(), è una funzione che ottiene l’ora corrente (HH:MM:SS).
In pratica, si comporta esattamente come CURTIME().

Sintassi di CURRENT_TIME()

SELECT CURRENT_TIME();

Esempio di output

16:30:45

📌 Qual è la differenza?

  • CURTIME() è specifico di MySQL
  • CURRENT_TIME() è standard SQL
  • Si comportano allo stesso modo
  • Scegli in base alla preferenza di leggibilità (nessuna differenza di prestazioni)

5.3 CURTIME() vs CURRENT_TIME() (Confronto)

FunctionWhat it returnsFormatNotes
CURTIME()Current time (hour/minute/second)HH:MM:SSMySQL-specific function
CURRENT_TIME()Current time (hour/minute/second)HH:MM:SSSQL-standard function

5.4 Esempi pratici di CURTIME() / CURRENT_TIME()

① Registra l’ora corrente durante l’inserimento dei dati

INSERT INTO user_logs (event, event_time) VALUES ('Login', CURTIME());

② Filtraggio (recupera dati entro un intervallo di tempo specifico)

SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';

③ Modifica la precisione (includi millisecondi)

SELECT CURTIME(3);  -- Display up to 3 fractional digits

Esempio di output

16:30:45.123

5.5 Limitazioni e note per CURTIME() / CURRENT_TIME()

① Nessuna informazione sulla data, quindi combina con una data quando necessario

SELECT CONCAT(CURDATE(), ' ', CURTIME()) AS full_datetime;

② Quando usato come valore DEFAULT

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event_time TIME DEFAULT CURTIME()
);

5.6 Quando dovresti usare CURTIME() / CURRENT_TIME()?

Use caseRecommended function
Need only the current time (hour/minute/second)CURTIME() or CURRENT_TIME()
Need current date and timeNOW()
Need millisecond precisionCURTIME(3)

📌 Nella maggior parte dei casi, sia CURTIME() che CURRENT_TIME() funzionano bene.
Scegli quella che trovi più leggibile.

5.7 Riepilogo di CURTIME() / CURRENT_TIME()

  • CURTIME() è specifico di MySQL; CURRENT_TIME() è standard SQL
  • Entrambi recuperano l’ora corrente (HH:MM:SS)
  • Usa CURTIME(3) o DATE_FORMAT() per regolare formattazione/precisione
  • Se ti serve una data, combina con CURDATE() o usa NOW()
  • Per i valori predefiniti, CURRENT_TIMESTAMP è comunemente usato

📌 Conclusione: Se ti serve solo l’ora corrente, CURTIME() è una scelta solida.

6. Esempi pratici di query usando l’ora corrente

Adesso che hai capito come recuperare l’ora corrente in MySQL, diamo un’occhiata a modi pratici per usarla.
In questa sezione, introdurremo esempi di query reali che utilizzano l’ora corrente.
Imparerai tecniche utili per le attività quotidiane del database, come inserimenti, aggiornamenti e ricerche.

6.1 Registra l’ora corrente durante l’inserimento dei dati

① Registra l’ora corrente quando un utente si registra

INSERT INTO users (name, email, created_at) 
VALUES ('Sato', 'sato@example.com', NOW());

6.2 Registra l’ora corrente durante l’aggiornamento dei dati

② Registra il timestamp dell’ultimo accesso dell’utente

UPDATE users SET last_login = NOW() WHERE id = 1;

6.3 Recupera i dati degli ultimi N giorni

③ Recupera i dati degli ordini degli ultimi 7 giorni

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;

6.4 Recupera i dati creati entro un intervallo di tempo specifico

④ Recupera i dati creati oggi tra le 9:00 e le 18:00

SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';

6.5 Recupera l’ora corrente tenendo conto dei fusi orari

⑤ Converti l’ora UTC in ora Giappone (JST)

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

6.6 Imposta l’ora di creazione di un record al timestamp corrente per impostazione predefinita

⑥ Imposta automaticamente created_at al timestamp corrente

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

6.7 Elimina i dati dopo un certo periodo di tempo

⑦ Elimina i dati più vecchi di 30 giorni

DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

6.8 Ottieni l’ora corrente con precisione al millisecondo (microsecondo)

⑧ Ottieni il timestamp corrente con precisione al millisecondo

SELECT NOW(3);

Esempio di output

2025-02-14 16:30:45.123

6.9 Guida alla selezione dei casi d’uso

Use caseRecommended functionExample
Record the current time when inserting dataNOW()INSERT INTO users (name, created_at) VALUES ('Sato', NOW());
Record the current time when updating dataNOW()UPDATE users SET last_login = NOW() WHERE id = 1;
Retrieve data from the past N daysNOW() - INTERVAL X DAYSELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
Retrieve data within a specific time rangeCURTIME()SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';
Convert UTC time to JSTCONVERT_TZ()SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
Delete old data (older than 30 days)NOW() - INTERVAL X DAYDELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

6.10 Riepilogo

  • NOW() gestisce il recupero di base del timestamp corrente
  • CURTIME() e CURRENT_TIME() sono utili quando ti serve solo l’ora
  • Puoi usare l’ora corrente per query a finestra temporale, filtraggio per ora del giorno e timestamp con precisione al millisecondo
  • Poiché i timestamp dipendono dai fusi orari, usa CONVERT_TZ() per ottenere l’ora corretta
  • Per la gestione delle dimensioni del database, è importante progettare un meccanismo per eliminare automaticamente i dati vecchi

📌 Conclusione: Usare efficacemente l’ora corrente ti aiuta a gestire i dati in modo più efficiente in MySQL.

7. FAQ (Domande Frequenti)

Ecco domande frequenti (FAQ) su come ottenere l’ora corrente in MySQL.
Ogni domanda è risposta in modo chiaro e conciso.

7.1 Qual è la differenza tra NOW() e SYSDATE()?

Risposta

Sia NOW() che SYSDATE() recuperano la data e l’ora correnti, ma differiscono per quando il valore viene valutato.

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeReturns a different timestamp on each evaluation

Esempio di test

SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

Esempio di output

NOW()        | SLEEP(3) | NOW()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:48

🚨 Per l’elaborazione delle transazioni, NOW() è generalmente consigliato.

7.2 Are CURRENT_TIMESTAMP() and NOW() the same?

Answer

They behave almost the same, but CURRENT_TIMESTAMP() can be used as a DEFAULT value.

Example when creating a table

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7.3 How do I get the current time in a specific time zone?

Answer

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

7.4 How can I automatically record the current time?

Answer

When creating a table, specify DEFAULT CURRENT_TIMESTAMP to automatically store the current time in created_at.

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7.5 How do I retrieve data from the past N days?

Answer

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;

7.6 How do I get the current time with millisecond (microsecond) precision?

Answer

SELECT NOW(3);

Example output

2025-02-14 16:30:45.123

7.7 Summary

  • NOW() and SYSDATE() differ in evaluation timing
  • CURRENT_TIMESTAMP() can be used as a DEFAULT value
  • Use CONVERT_TZ() to retrieve timestamps in other time zones
  • Use DEFAULT CURRENT_TIMESTAMP to auto-record creation timestamps
  • Use NOW() - INTERVAL X DAY to retrieve data from the past X days
  • NOW(3) or NOW(6) supports millisecond/microsecond precision timestamps

📌 Conclusion: Choosing the right MySQL time function is essential for working with current timestamps.

8. Summary

In this article, we explained how to get the current time in MySQL.
Focusing on the NOW() function, we covered differences between similar functions, practical query examples, and important notes.

8.1 Main MySQL Functions to Get the Current Time

FunctionWhat it returnsFormatNotes
NOW()Current date and timeYYYY-MM-DD HH:MM:SSMost common function
SYSDATE()Date and time at executionYYYY-MM-DD HH:MM:SSCan return different values on each evaluation
CURTIME()Current timeHH:MM:SSTime only (no date)
CURRENT_TIME()Current timeHH:MM:SSSame as CURTIME()
CURRENT_TIMESTAMP()Current date and timeYYYY-MM-DD HH:MM:SSAlmost the same as NOW()
UTC_TIMESTAMP()Current UTC date and timeYYYY-MM-DD HH:MM:SSTime zone fixed to UTC

📌 Conclusion:

  • For general current timestamp retrieval, NOW() is usually best .
  • If you need the exact execution time, use SYSDATE() .
  • If you only need the time (no date), choose CURTIME() .

8.2 Practical Queries Using the Current Time

Record the current time when inserting data

INSERT INTO users (name, created_at) VALUES ('Sato', NOW());

Record the current time when updating data

UPDATE users SET last_login = NOW() WHERE id = 1;

Retrieve data from the past 7 days

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;

Retrieve time with time zones in mind

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

Delete old data (older than 30 days)

DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

8.3 Notes About Time Zones

  • MySQL NOW() depends on the default time zone setting , so results can differ across environments.
  • Use CONVERT_TZ() to retrieve timestamps in another time zone.
  • If you want to change the server time zone:
    SET GLOBAL time_zone = 'Asia/Tokyo';
    

8.4 FAQ About MySQL Current Time Functions

Q1. What’s the difference between NOW() and SYSDATE()?

NOW() retrieves the time at query start, while SYSDATE() retrieves the time at execution.

Q2. Are CURRENT_TIMESTAMP() and NOW() the same?

➡ They are almost the same, but CURRENT_TIMESTAMP() can be used as a DEFAULT value.

Q3. How do I get the current time with millisecond (microsecond) precision?

➡ Use NOW(3) (milliseconds) or NOW(6) (microseconds).

SELECT NOW(3); -- Example: 2025-02-14 16:30:45.123

8.5 Summary

  • In MySQL, scegliere la funzione giusta per l’ora corrente è importante .
  • Usa NOW() per i casi tipici, e SYSDATE() quando ti servono timestamp di esecuzione esatti .
  • Usa CURTIME() solo per l’ora, e CONVERT_TZ() per la conversione del fuso orario .
  • Puoi usare l’ora corrente in inserimenti, aggiornamenti, ricerche e cancellazioni .

📌 Conclusione: Padroneggia le funzioni temporali di MySQL per gestire i dati in modo più efficiente.