Aktuální časové razítko v MySQL: Jak získat aktuální datum a čas (NOW, SYSDATE, UTC_TIMESTAMP)

目次

1. Úvod

Získání aktuálního času v MySQL je klíčovou součástí správy databáze.
Například můžete potřebovat získat aktuální čas v následujících situacích:

  • Automatické zaznamenání časové značky vytvoření při vkládání dat (např. časová značka, když se nový uživatel zaregistruje)
  • Zaznamenávání časů přihlášení uživatelů (např. správa historie přihlášení)
  • Načítání dat v určitém časovém rozmezí (např. získání historie objednávek za posledních 24 hodin)
  • Zaznamenávání systémových spouštěcích logů (např. správa chybových a událostních logů)

Jak vidíte, správné získání „aktuálního času“ pro správu dat a logování je nezbytné pro provoz databáze.

V tomto článku podrobně vysvětlíme jak získat aktuální čas v MySQL pomocí reálných SQL dotazů.
Také se podíváme na rozdíly mezi často používanými funkcemi, jak vybrat tu správnou a praktické příklady dotazů — užitečné pro začátečníky i středně pokročilé uživatele.

2. MySQL funkce pro získání aktuálního data/času (srovnávací tabulka)

MySQL poskytuje několik funkcí pro získání aktuálního času.
Vybrat správnou funkci pro váš případ použití je důležité, ale mnoho lidí považuje rozdíly za matoucí.

V této sekci porovnáme hlavní funkce používané k získání aktuálního data/času v MySQL a podrobně vysvětlíme jejich charakteristiky.

2.1 Srovnávací tabulka MySQL časových funkcí

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

Z tabulky výše většina funkcí vrací buď „aktuální datum a čas“, nebo „aktuální čas“, ale nejlepší funkce závisí na vašem účelu.

2.2 Přehled a charakteristiky jednotlivých funkcí

Funkce NOW()

  • Nejčastější funkce pro získání aktuálního data a času
  • Vrací čas v okamžiku, kdy se spustí SQL příkaz
  • Často používána pro časové značky při vkládání nebo aktualizaci dat
    SELECT NOW();
    

Příklad výstupu

2025-02-14 15:30:45

Funkce SYSDATE()

  • Získá aktuální čas v okamžiku vykonání
  • Na rozdíl od NOW() může SYSDATE() vrátit jinou hodnotu při každém vyhodnocení (může se měnit i během transakce)
    SELECT SYSDATE();
    

Příklad výstupu

2025-02-14 15:30:47

Funkce CURTIME()

  • Získá pouze čas (HH:MM:SS)
  • Užitečné, když datum není potřeba
    SELECT CURTIME();
    

Příklad výstupu

15:30:45

Funkce CURRENT_TIME()

  • Funguje stejně jako CURTIME()
  • Název funkce vyhovuje SQL standardu
    SELECT CURRENT_TIME();
    

Příklad výstupu

15:30:45

Funkce CURRENT_TIMESTAMP()

  • Chová se jako NOW()
  • Může být specifikována jako výchozí hodnota sloupce DEFAULT (často vhodnější než NOW() pro výchozí hodnoty)
    SELECT CURRENT_TIMESTAMP();
    

Příklad výstupu

2025-02-14 15:30:45

Nastavit jako výchozí hodnotu při vytváření tabulky:

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

Funkce UTC_TIMESTAMP()

  • Získá aktuální UTC (Koordinovaný světový čas)
  • Nezávisí na časovém pásmu serveru, což umožňuje konzistentní časové značky
    SELECT UTC_TIMESTAMP();
    

Příklad výstupu

2025-02-14 06:30:45

2.3 Kterou funkci byste měli použít?

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()

Obecně, pro typické získávání data/času je NOW() obvykle správnou volbou.
Nicméně výběr nejlepší funkce pro váš případ použití umožňuje flexibilnější a spolehlivější operace s daty.

3. Podrobnosti funkce NOW()

Funkce MySQL NOW() je nejčastěji používanou funkcí pro získání aktuálního data a času (datum + čas).
Je široce používána pro ukládání časových značek v databázi a načítání dat v konkrétních časových intervalech.

3.1 Základní použití funkce NOW()

Syntaxe funkce NOW()

SELECT NOW();

Příklad výstupu

2025-02-14 15:30:45
  • Formát výstupu je YYYY-MM-DD HH:MM:SS (rok-měsíc-den hodina:minuta:sekunda).
  • Čas je získáván na základě výchozího nastavení časové zóny MySQL.

3.2 Běžné případy použití NOW()

① Zaznamenat aktuální čas při vkládání dat

Při vkládání dat do databáze můžete použít NOW(), abyste zaznamenali čas vytvoření.

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

② Zaznamenat aktuální čas při aktualizaci dat

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

③ Načíst data z určitého časového období

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 1 DAY;
  • Zadáním INTERVAL 1 DAY můžete získat „data z posledního 1 dne“.

3.3 Návratový typ a jak změnit formát výstupu

Návratový typ funkce NOW()

  • Typ DATETIME ( YYYY-MM-DD HH:MM:SS )
  • Může být také považován za řetězec
    SELECT NOW(), typeof(NOW());
    

Jak změnit formát

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

Příklad výstupu

2025-02-14 15:30:45

3.4 Rozdíly mezi NOW() a 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();

Příklad výstupu

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

🚨 Pokud pracujete s transakcemi, doporučuje se NOW() pro konzistenci.

3.5 Omezení a poznámky k funkci NOW()

① Závisí na časové zóně

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

② Pro výchozí hodnoty tabulky použijte CURRENT_TIMESTAMP

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

3.6 Shrnutí funkce NOW()

  • NOW() je nejčastější funkce pro získání aktuálního data a času v MySQL.
  • Lze ji použít pro vkládání, aktualizace i načítání časově podmíněných dat.
  • Použijte NOW(), když potřebujete konzistentní časové razítko v rámci transakce.
  • SYSDATE() vrací jiný čas při každém vyhodnocení, takže ji použijte, když potřebujete přesný čas provedení.
  • Použijte CONVERT_TZ(), abyste získali čas v jiné časové zóně.

📌 Závěr: Ve většině případů je NOW() nejlepší volbou pro získání aktuálního data a času v MySQL.

4. Vlastnosti funkce SYSDATE()

Funkce SYSDATE() je další způsob, jak získat aktuální datum a čas v MySQL, ale chová se odlišně od NOW().
V této sekci vysvětlíme základní použití SYSDATE(), jak se liší od NOW() a důležité poznámky.

4.1 Co je SYSDATE()?

SYSDATE() je funkce, která vrací čas při vykonání příkazu.
Na rozdíl od NOW() vrací jiný časový údaj při každém vyhodnocení.

Syntaxe SYSDATE()

SELECT SYSDATE();

Příklad výstupu

2025-02-14 16:00:45
  • Vráceno ve formátu YYYY-MM-DD HH:MM:SS
  • Reprezentuje okamžik, kdy je dotaz proveden

4.2 Rozdíly mezi SYSDATE() a NOW()

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

Porovnání chování: NOW() vs SYSDATE()

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

Příklad výstupu

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

📌 Klíčové body

  • NOW() uchovává časové razítko od začátku příkazu, takže se nemění.
  • SYSDATE() vrací jiný časový údaj při každém vyhodnocení, takže se po 3 sekundách změní.

🚨 Používejte NOW() pro zpracování transakcí

  • Protože SYSDATE() se může chovat odlišně od NOW() v vícevláknových prostředích, NOW() je obecně doporučováno pro konzistenci transakcí.

4.3 Příklady použití SYSDATE()

① Zaznamenejte aktuální čas při vkládání dat

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

② Zaznamenejte aktuální čas při aktualizaci dat

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

③ Získejte aktuální čas v konkrétním formátu

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

Ukázkový výstup

2025-02-14 16:05:30

4.4 Omezení a poznámky k SYSDATE()

① Chování v transakcích

  • NOW() uchovává časové razítko od začátku příkazu, takže jej lze v transakci použít konzistentně.
  • SYSDATE() vrací jiné časové razítko při každém volání, takže v transakci může dojít k posunu času.

② Nelze použít jako výchozí hodnotu

  • SYSDATE() nelze nastavit jako výchozí hodnotu sloupce tabulky DEFAULT .

Řešení: Použijte DEFAULT CURRENT_TIMESTAMP.

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

4.5 Kdy byste měli použít SYSDATE()?

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

🚀 SYSDATE() je vhodné pro logování v reálném čase, ale není ideální pro zpracování transakcí.

4.6 Shrnutí SYSDATE()

  • SYSDATE() získává časové razítko v okamžiku provedení, na rozdíl od NOW().
  • Protože může při každém volání vracet různé hodnoty, je užitečné pro logování v reálném čase.
  • Pro transakční konzistenci se doporučuje NOW().
  • Pro výchozí hodnoty použijte CURRENT_TIMESTAMP.

📌 Závěr: Pro obecné získávání časových razítek je nejlepší NOW(); pro přesné časy provedení zvolte SYSDATE().

5. CURTIME() a CURRENT_TIME()

Když chcete v MySQL získat aktuální čas, používají se CURTIME() a CURRENT_TIME(), pokud potřebujete pouze čas (HH:MM:SS).
V této sekci vysvětlíme základní použití, rozdíly a praktické příklady pro každou z nich.

5.1 Co je CURTIME()?

CURTIME() je funkce, která získává aktuální čas (hodina, minuta, sekunda) v MySQL.
Její hlavní vlastností je, že neobsahuje datum – vrací pouze část času.

Syntaxe CURTIME()

SELECT CURTIME();

Ukázkový výstup

16:30:45
  • Formát: HH:MM:SS
  • Závisí na nastavení časové zóny serveru
  • Na rozdíl od NOW() je vhodné, když nepotřebujete datum

5.2 Co je CURRENT_TIME()?

CURRENT_TIME(), podobně jako CURTIME(), je funkce, která získává aktuální čas (HH:MM:SS).
V praxi se chová naprosto stejně jako CURTIME().

Syntaxe CURRENT_TIME()

SELECT CURRENT_TIME();

Ukázkový výstup

16:30:45

📌 Jaký je rozdíl?

  • CURTIME() je specifické pro MySQL
  • CURRENT_TIME() je standard SQL
  • Chovají se stejně
  • Zvolte podle preference čitelnosti (žádný rozdíl ve výkonu)

5.3 CURTIME() vs CURRENT_TIME() (srovnání)

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 Praktické příklady CURTIME() / CURRENT_TIME()

① Zaznamenejte aktuální čas při vkládání dat

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

② Filtrování (získání dat v konkrétním časovém rozmezí)

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

③ Změna přesnosti (zahrnutí milisekund)

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

Ukázkový výstup

16:30:45.123

5.5 Omezení a poznámky k CURTIME() / CURRENT_TIME()

① Žádná informace o datu, takže v případě potřeby kombinujte s datem

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

② Při použití jako výchozí hodnota

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

5.6 Kdy byste měli použít 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)

📌 Ve většině případů funguje buď CURTIME() nebo CURRENT_TIME() dobře.
Vyberte ten, který vám připadá čitelnější.

5.7 Shrnutí CURTIME() / CURRENT_TIME()

  • CURTIME() je specifické pro MySQL; CURRENT_TIME() je standard SQL
  • Oba získávají aktuální čas (HH:MM:SS)
  • Použijte CURTIME(3) nebo DATE_FORMAT() k úpravě formátování/přesnosti
  • Pokud potřebujete datum, zkombinujte s CURDATE() nebo použijte NOW()
  • Pro výchozí hodnoty se běžně používá CURRENT_TIMESTAMP

📌 Závěr: Pokud potřebujete pouze aktuální čas, CURTIME() je solidní volba.

6. Praktické příklady dotazů používající aktuální čas

Teď, když rozumíte, jak získat aktuální čas v MySQL, podívejme se na praktické způsoby jeho použití.
V této sekci představíme příklady reálných dotazů používajících aktuální čas.
Naučíte se techniky užitečné pro každodenní úkoly databáze, jako jsou vložení, aktualizace a vyhledávání.

6.1 Zaznamenat aktuální čas při vkládání dat

① Zaznamenat aktuální čas při registraci uživatele

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

6.2 Zaznamenat aktuální čas při aktualizaci dat

② Zaznamenat časové razítko posledního přihlášení uživatele

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

6.3 Získat data z minulých N dnů

③ Získat data objednávek z minulých 7 dnů

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

6.4 Získat data vytvořená v určitém časovém rozsahu

④ Získat data vytvořená dnes mezi 9:00 a 18:00

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

6.5 Získat aktuální čas s ohledem na časová pásma

⑤ Převést UTC čas na japonský čas (JST)

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

6.6 Nastavit čas vytvoření záznamu na aktuální časové razítko jako výchozí

⑥ Automaticky nastavit created_at na aktuální časové razítko

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

6.7 Smazat data po uplynutí určité doby

⑦ Smazat data starší 30 dnů

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

6.8 Získat aktuální čas s přesností na milisekundy (mikrosekundy)

⑧ Získat aktuální časové razítko s přesností na milisekundy

SELECT NOW(3);

Příklad výstupu

2025-02-14 16:30:45.123

6.9 Průvodce výběrem použití

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 Shrnutí

  • NOW() zpracovává základní získávání aktuálního časového razítka
  • CURTIME() a CURRENT_TIME() jsou užitečné, když potřebujete pouze čas
  • Aktuální čas můžete použít pro dotazy s časovým oknem, filtrování podle času dne a časová razítka s přesností na milisekundy
  • Protože časová razítka závisí na časových pásmech, použijte CONVERT_TZ() k získání správného času
  • Pro správu velikosti databáze je důležité navrhnout mechanismus pro automatické mazání starých dat

📌 Závěr: Efektivní použití aktuálního času vám pomůže lépe spravovat data v MySQL.

7. FAQ (Často kladené otázky)

Zde jsou často kladené otázky (FAQ) o tom, jak získat aktuální čas v MySQL.
Každá otázka je zodpovězena jasně a stručně.

7.1 Jaký je rozdíl mezi NOW() a SYSDATE()?

Odpověď

Oba NOW() a SYSDATE() získávají aktuální datum a čas, ale liší se v tom, kdy je hodnota vyhodnocena.

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

Příklad testu

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

Příklad výstupu

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

🚨 Pro zpracování transakcí je obecně doporučeno NOW().

7.2 Jsou CURRENT_TIMESTAMP() a NOW() stejné?

Odpověď

Chovají se téměř stejně, ale CURRENT_TIMESTAMP() lze použít jako výchozí hodnotu.

Příklad při vytváření tabulky

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

7.3 Jak získám aktuální čas v určité časové zóně?

Odpověď

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

7.4 Jak mohu automaticky zaznamenat aktuální čas?

Odpověď

Při vytváření tabulky specifikujte DEFAULT CURRENT_TIMESTAMP, aby se automaticky uložil aktuální čas do created_at.

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

7.5 Jak získám data z minulých N dní?

Odpověď

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

7.6 Jak získám aktuální čas s přesností na milisekundy (mikrosekundy)?

Odpověď

SELECT NOW(3);

Příklad výstupu

2025-02-14 16:30:45.123

7.7 Shrnutí

  • NOW() a SYSDATE() se liší v čase vyhodnocení
  • CURRENT_TIMESTAMP() lze použít jako DEFAULT hodnotu
  • Použijte CONVERT_TZ() k získání časových razítek v jiných časových zónách
  • Použijte DEFAULT CURRENT_TIMESTAMP k automatickému záznamu časových razítek vytvoření
  • Použijte NOW() - INTERVAL X DAY k získání dat z minulých X dní
  • NOW(3) nebo NOW(6) podporuje časová razítka s přesností na milisekundy/mikrosekundy

📌 Závěr: Volba správné funkce MySQL pro čas je nezbytná pro práci s aktuálními časovými razítky.

8. Shrnutí

V tomto článku jsme vysvětlili, jak získat aktuální čas v MySQL.
S důrazem na funkci NOW() jsme pokrývali rozdíly mezi podobnými funkcemi, praktické příklady dotazů a důležité poznámky.

8.1 Hlavní funkce MySQL pro získání aktuálního času

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

📌 Závěr:

  • Pro obecné získání aktuálního časového razítka je NOW() obvykle nejlepší .
  • Pokud potřebujete přesný čas provedení, použijte SYSDATE() .
  • Pokud potřebujete pouze čas (bez data), zvolte CURTIME() .

8.2 Praktické dotazy používající aktuální čas

Zaznamenat aktuální čas při vkládání dat

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

Zaznamenat aktuální čas při aktualizaci dat

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

Získat data z minulých 7 dní

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

Získat čas s ohledem na časové zóny

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

Smazat stará data (starší 30 dní)

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

8.3 Poznámky k časovým zónám

  • MySQL NOW() závisí na výchozím nastavení časové zóny, takže výsledky se mohou lišit napříč prostředími.
  • Použijte CONVERT_TZ() k získání časových razítek v jiné časové zóně.
  • Pokud chcete změnit časovou zónu serveru:
    SET GLOBAL time_zone = 'Asia/Tokyo';
    

8.4 FAQ o funkcích MySQL pro aktuální čas

Otázka 1. Jaký je rozdíl mezi NOW() a SYSDATE()?

NOW() získává čas na začátku dotazu, zatímco SYSDATE() získává čas při provedení.

Otázka 2. Jsou CURRENT_TIMESTAMP() a NOW() stejné?

➡ Jsou téměř stejné, ale CURRENT_TIMESTAMP() lze použít jako výchozí hodnotu.

Otázka 3. Jak získám aktuální čas s přesností na milisekundy (mikrosekundy)?

➡ Použijte NOW(3) (milisekundy) nebo NOW(6) (mikrosekundy).

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

8.5 Shrnutí

  • V MySQL je důležité vybrat správnou funkci pro aktuální čas .
  • Použijte NOW() pro typické případy a SYSDATE() když potřebujete přesné časové razítko vykonání .
  • Použijte CURTIME() jen pro čas a CONVERT_TZ() pro převod časových pásem .
  • Můžete použít aktuální čas při vkládání, aktualizaci, vyhledávání i mazání .

📌 Závěr: Ovládněte časové funkce MySQL a spravujte data efektivněji.