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.