Trong MySQL, TIMESTAMP()
hàm trả về giá trị datetime dựa trên / s đối số được truyền vào. Bạn có thể cung cấp một hoặc hai đối số. Nếu bạn cung cấp hai, nó sẽ thêm cái thứ hai vào cái đầu tiên và trả về kết quả.
Cú pháp
Bạn có thể sử dụng một trong hai hình thức sau:
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
Đối số đầu tiên (expr
và expr1
) là một biểu thức ngày tháng hoặc ngày giờ. Đối số thứ hai (expr2
) là một biểu thức thời gian. Nếu bạn cung cấp hai đối số, expr2
được thêm vào expr1
và kết quả là một giá trị ngày giờ.
Ví dụ 1 - Cung cấp Đối số "ngày tháng"
Trong ví dụ này, tôi cung cấp một biểu thức ngày tháng.
SELECT TIMESTAMP('1999-12-31');
Kết quả:
+-------------------------+ | TIMESTAMP('1999-12-31') | +-------------------------+ | 1999-12-31 00:00:00 | +-------------------------+
Vì vậy, kết quả là một giá trị datetime bất kể đối số của chúng ta là biểu thức date hay datetime.
Ví dụ 2 - Cung cấp Đối số "datetime"
Và đây là một ví dụ sử dụng biểu thức ngày giờ.
SELECT TIMESTAMP('1999-12-31 23:59:59');
Kết quả:
+----------------------------------+ | TIMESTAMP('1999-12-31 23:59:59') | +----------------------------------+ | 1999-12-31 23:59:59 | +----------------------------------+
Ví dụ 3 - Bao gồm Giây phân số
Bạn cũng có thể bao gồm một phần giây phân số lên đến micro giây (6 chữ số). Khi bạn làm điều này, kết quả cũng sẽ bao gồm phần đó.
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
Kết quả:
+-----------------------------------------+ | TIMESTAMP('1999-12-31 23:59:59.999999') | +-----------------------------------------+ | 1999-12-31 23:59:59.999999 | +-----------------------------------------+
Ví dụ 4 - Cung cấp 2 đối số
Dưới đây là một ví dụ sử dụng hai đối số. Như đã đề cập, cái thứ hai được thêm vào cái thứ nhất.
SELECT TIMESTAMP('1999-12-31', '12:30:45');
Kết quả:
+-------------------------------------+ | TIMESTAMP('1999-12-31', '12:30:45') | +-------------------------------------+ | 1999-12-31 12:30:45 | +-------------------------------------+
Ví dụ 5 - Giá trị ‘thời gian’ lớn hơn
Loại dữ liệu thời gian có thể có phạm vi từ -838:59:59 thành 838:59:59 . Điều này là do nó không chỉ giới hạn ở việc thể hiện thời gian trong ngày. Nó cũng có thể được sử dụng để biểu thị thời gian đã trôi qua. Trong trường hợp này, chúng tôi sử dụng nó để thêm một số lượng lớn giờ vào giá trị ngày.
SELECT TIMESTAMP('1999-12-31', '400:30:45');
Kết quả:
+--------------------------------------+ | TIMESTAMP('1999-12-31', '400:30:45') | +--------------------------------------+ | 2000-01-16 16:30:45 | +--------------------------------------+
Ví dụ 6 - Giá trị phủ định
Bạn có thể trừ đối số thứ hai khỏi đối số đầu tiên, đơn giản bằng cách thêm dấu trừ vào trước giá trị thứ hai.
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
Kết quả:
+---------------------------------------+ | TIMESTAMP('1999-12-31', '-400:30:45') | +---------------------------------------+ | 1999-12-14 07:29:15 | +---------------------------------------+
Ví dụ 7 - Sử dụng Ngày hiện tại
Nếu bạn muốn một dấu thời gian sử dụng ngày hiện tại, bạn có thể quan tâm hơn đến các hàm như NOW()
, CURDATE()
và thậm chí có thể là SYSDATE()
(để biết sự khác biệt, hãy xem SYSDATE()
so với NOW()
).
Tuy nhiên, TIMESTAMP()
chức năng vẫn có thể là chức năng ưa thích của bạn trong một số trường hợp nhất định, chẳng hạn như nếu bạn muốn thêm giá trị thời gian vào ngày hiện tại.
SELECT TIMESTAMP(CURDATE()) AS 'Today', TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
Kết quả:
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
Hàm TIMESTAMPADD ()
Bạn có thể sử dụng TIMESTAMPADD()
chức năng để thêm một đơn vị được chỉ định vào giá trị ngày tháng hoặc thời gian. Hàm này cũng chấp nhận các đơn vị như ngày, tháng, năm, v.v.
Nếu bạn tìm thấy TIMESTAMP()
quá hạn chế đối với nhu cầu của bạn, hãy xem TIMESTAMPADD()
Ví dụ.