W MySQL funkcja TIMESTAMP()
funkcja zwraca wartość daty i godziny na podstawie przekazanych argumentów. Możesz podać jeden argument lub dwa. Jeśli podasz dwa, doda drugi do pierwszego i zwróci wynik.
Składnia
Możesz użyć jednej z tych dwóch form:
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
Pierwszy argument (expr
i expr1
) to wyrażenie daty lub daty i godziny. Drugi argument (expr2
) to wyrażenie czasu. Jeśli podasz dwa argumenty, expr2
jest dodany do expr1
a wynikiem jest wartość daty i godziny.
Przykład 1 – Podaj argument „data”
W tym przykładzie podaję wyrażenie daty.
SELECT TIMESTAMP('1999-12-31');
Wynik:
+-------------------------+ | TIMESTAMP('1999-12-31') | +-------------------------+ | 1999-12-31 00:00:00 | +-------------------------+
Wynik jest więc wartością daty i godziny niezależnie od tego, czy naszym argumentem było wyrażenie daty czy czasu.
Przykład 2 – Podaj argument „data-godzina”
A oto przykład z użyciem wyrażenia daty i godziny.
SELECT TIMESTAMP('1999-12-31 23:59:59');
Wynik:
+----------------------------------+ | TIMESTAMP('1999-12-31 23:59:59') | +----------------------------------+ | 1999-12-31 23:59:59 | +----------------------------------+
Przykład 3 – Uwzględnij ułamki sekund
Możesz również dołączyć część ułamkową sekundy do mikrosekund (6 cyfr). Gdy to zrobisz, wynik będzie również zawierał tę część.
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
Wynik:
+-----------------------------------------+ | TIMESTAMP('1999-12-31 23:59:59.999999') | +-----------------------------------------+ | 1999-12-31 23:59:59.999999 | +-----------------------------------------+
Przykład 4 – Podanie 2 argumentów
Oto przykład z dwoma argumentami. Jak wspomniano, drugi zostanie dodany do pierwszego.
SELECT TIMESTAMP('1999-12-31', '12:30:45');
Wynik:
+-------------------------------------+ | TIMESTAMP('1999-12-31', '12:30:45') | +-------------------------------------+ | 1999-12-31 12:30:45 | +-------------------------------------+
Przykład 5 – Większe wartości „czasu”
Typ danych czasu może mieć zakres od -838:59:59 do 838:59:59 . Dzieje się tak, ponieważ nie ogranicza się tylko do reprezentowania pory dnia. Może być również używany do reprezentowania czasu, który upłynął. W tym przypadku używamy go, aby dodać dużą liczbę godzin do wartości daty.
SELECT TIMESTAMP('1999-12-31', '400:30:45');
Wynik:
+--------------------------------------+ | TIMESTAMP('1999-12-31', '400:30:45') | +--------------------------------------+ | 2000-01-16 16:30:45 | +--------------------------------------+
Przykład 6 – Wartości ujemne
Możesz odjąć drugi argument od pierwszego, po prostu poprzedzając drugą wartość znakiem minus.
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
Wynik:
+---------------------------------------+ | TIMESTAMP('1999-12-31', '-400:30:45') | +---------------------------------------+ | 1999-12-14 07:29:15 | +---------------------------------------+
Przykład 7 – Korzystanie z aktualnej daty
Jeśli potrzebujesz znacznika czasu, który używa bieżącej daty, możesz być bardziej zainteresowany funkcjami takimi jak NOW()
, CURDATE()
, a być może nawet SYSDATE()
(dla różnicy, zobacz SYSDATE()
vs NOW()
).
Jednak TIMESTAMP()
funkcja może nadal być preferowaną funkcją w niektórych przypadkach, na przykład jeśli chcesz dodać wartość czasu do bieżącej daty.
SELECT TIMESTAMP(CURDATE()) AS 'Today', TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
Wynik:
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
Funkcja TIMESTAMPADD()
Możesz użyć TIMESTAMPADD()
funkcja, aby dodać określoną jednostkę do wartości daty lub daty i godziny. Ta funkcja akceptuje również jednostki takie jak dni, miesiące, lata itp.
Jeśli znajdziesz TIMESTAMP()
zbyt restrykcyjne jak na twoje potrzeby, zobacz TIMESTAMPADD()
Przykłady.