Trong MariaDB, TIMESTAMP()
là một hàm ngày và giờ tích hợp sẵn trả về giá trị ngày giờ, dựa trên / s đối số của nó.
Nó có thể được sử dụng với một hoặc hai đối số, như sau:
- Khi được sử dụng với một đối số, nó trả về ngày tháng hoặc biểu thức ngày giờ đó dưới dạng giá trị ngày giờ.
- Khi được sử dụng với hai đối số, nó sẽ thêm đối số (thời gian) thứ hai vào biểu thức (ngày tháng hoặc ngày giờ) đầu tiên, sau đó trả về giá trị ngày giờ kết quả.
Cú pháp
Nó có thể được sử dụng theo hai cách sau:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Trong đó expr1
là một biểu thức ngày tháng hoặc ngày giờ và expr2
là một biểu thức thời gian để thêm vào expr1
.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT TIMESTAMP('2030-02-01');
Kết quả:
+-------------------------+ | TIMESTAMP('2030-02-01') | +-------------------------+ | 2030-02-01 00:00:00 | +-------------------------+
Giá trị ngày giờ
Dưới đây là một ví dụ về việc chuyển một giá trị ngày giờ:
SELECT TIMESTAMP('2030-02-01 10:30:45');
Kết quả:
+----------------------------------+ | TIMESTAMP('2030-02-01 10:30:45') | +----------------------------------+ | 2030-02-01 10:30:45 | +----------------------------------+
Đối số thứ hai
Dưới đây là một ví dụ thêm đối số thứ hai vào đối số đầu tiên:
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15');
Kết quả:
+----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '02:15:15') | +----------------------------------------------+ | 2030-02-01 12:46:00 | +----------------------------------------------+
Micro giây
Dưới đây là một ví dụ thêm micro giây:
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456');
Kết quả:
+-----------------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') | +-----------------------------------------------------+ | 2030-02-01 10:30:45.123456 | +-----------------------------------------------------+
Lần tiêu cực
Thời gian phủ định hợp lệ:
Ví dụ:
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00');
Kết quả:
+-----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') | +-----------------------------------------------+ | 2030-02-01 01:10:45 | +-----------------------------------------------+
Ngày hiện tại
Chúng ta có thể chuyển NOW()
làm đối số datetime để sử dụng ngày và giờ hiện tại:
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45');
Kết quả:
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Đối số không hợp lệ
Khi truyền một đối số không hợp lệ, TIMESTAMP()
trả về null
với một cảnh báo:
SELECT TIMESTAMP('Ten Thirty AM');
Kết quả:
+----------------------------+ | TIMESTAMP('Ten Thirty AM') | +----------------------------+ | NULL | +----------------------------+ 1 row in set, 1 warning (0.004 sec)
Kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Thiếu đối số
Đang gọi TIMESTAMP()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:
SELECT TIMESTAMP();
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Và một ví dụ khác:
SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45');
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1