Trong MariaDB, NOW()
là một hàm ngày và giờ được tích hợp sẵn để trả về ngày và giờ hiện tại.
Giá trị trả về được trả lại trong 'YYYY-MM-DD HH:MM:SS'
hoặc YYYYMMDDHHMMSS.uuuuuu
định dạng, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh chuỗi hay số.
Giá trị trả về được biểu thị theo múi giờ hiện tại.
Bạn cũng có tùy chọn chỉ định độ chính xác micro giây.
Cú pháp
Cú pháp như sau:
NOW([precision])
Trong đó precision
là một đối số tùy chọn chỉ định độ chính xác micro giây.
Nó cũng có các từ đồng nghĩa sau:
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP([precision])
LOCALTIME
LOCALTIME([precision])
LOCALTIMESTAMP
LOCALTIMESTAMP([precision])
Ví dụ
Đây là một ví dụ:
SELECT NOW();
Kết quả:
+---------------------+ | NOW() | +---------------------+ | 2021-05-09 10:12:39 | +---------------------+
Ngữ cảnh dạng số
Khi NOW()
được sử dụng trong ngữ cảnh số, kết quả là YYYYMMDDHHMMSS.uuuuuu
định dạng.
Ví dụ:
SELECT
NOW(),
NOW() + 0;
Kết quả:
+---------------------+----------------+ | NOW() | NOW() + 0 | +---------------------+----------------+ | 2021-05-09 10:13:10 | 20210509101310 | +---------------------+----------------+
Độ chính xác
Dưới đây là một ví dụ về việc chỉ định độ chính xác micro giây:
SELECT
NOW(6),
NOW(6) + 0;
Kết quả:
+----------------------------+-----------------------+ | NOW(6) | NOW(6) + 0 | +----------------------------+-----------------------+ | 2021-05-09 10:13:30.619522 | 20210509101330.619522 | +----------------------------+-----------------------+
Giá trị tối đa cho độ chính xác micro giây là 6. Đây là điều xảy ra khi một số cao hơn được chuyển cho độ chính xác:
SELECT NOW(12);
Kết quả:
ERROR 1426 (42000): Too big precision 12 specified for 'current_timestamp'. Maximum is 6
Từ đồng nghĩa
Như đã thấy trong cú pháp ở trên, có rất nhiều từ đồng nghĩa với NOW()
.
Dưới đây là một ví dụ sử dụng các từ đồng nghĩa khác nhau:
SELECT
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP(),
LOCALTIME,
LOCALTIME(),
LOCALTIMESTAMP,
LOCALTIMESTAMP();
Kết quả (sử dụng đầu ra dọc):
CURRENT_TIMESTAMP: 2021-05-09 10:24:53 CURRENT_TIMESTAMP(): 2021-05-09 10:24:53 LOCALTIME: 2021-05-09 10:24:53 LOCALTIME(): 2021-05-09 10:24:53 LOCALTIMESTAMP: 2021-05-09 10:24:53 LOCALTIMESTAMP(): 2021-05-09 10:24:53
Thêm vào Dấu thời gian Hiện tại
Có nhiều cách để thực hiện số học trên các giá trị ngày giờ trong MariaDB.
Dưới đây là một ví dụ về việc sử dụng toán tử cộng (+
) để thêm 2 ngày vào ngày:
SELECT
NOW(),
NOW() + INTERVAL 2 DAY;
Kết quả:
+---------------------+------------------------+ | NOW() | NOW() + INTERVAL 2 DAY | +---------------------+------------------------+ | 2021-05-09 10:17:39 | 2021-05-11 10:17:39 | +---------------------+------------------------+
Cũng xem các hàm như DATE_ADD()
và ADDDATE()
để có một cách thay thế để thêm vào ngày hiện tại.
Trừ ngày hiện tại
Dưới đây là một ví dụ về việc sử dụng toán tử trừ (-
) trừ đi 10 ngày kể từ ngày hiện tại:
SELECT
NOW(),
NOW() - INTERVAL 10 DAY;
Kết quả:
+---------------------+-------------------------+ | NOW() | NOW() - INTERVAL 10 DAY | +---------------------+-------------------------+ | 2021-05-09 10:19:35 | 2021-04-29 10:19:35 | +---------------------+-------------------------+
Xem các hàm như DATE_SUB()
và SUBDATE()
để có một cách khác để trừ ngày hiện tại.