Bạn có thể sử dụng DAYOFWEEK()
trong MySQL để trả về ngày trong tuần kể từ một ngày.
Trong ngữ cảnh này, giá trị trả về là 1 tương ứng với Chủ nhật, 2 tương ứng với Thứ Hai, v.v.
Bài viết này có các ví dụ để minh chứng.
Cú pháp
Cú pháp như sau:
DAYOFWEEK(date)
Nơi date
là giá trị ngày mà bạn muốn trả về ngày trong tuần.
Ví dụ
Đây là một ví dụ để chứng minh.
SELECT DAYOFWEEK('2019-01-01') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 3 | +--------+
Chúng tôi có thể chạy điều này cùng với DAYNAME()
chức năng để xem ngày đó tương ứng với:
SET @date = '2019-01-01'; SELECT @date, DAYNAME(@date) AS 'Day Name', DAYOFWEEK(@date) AS 'Day of Week';
Kết quả:
+------------+----------+-------------+ | @date | Day Name | Day of Week | +------------+----------+-------------+ | 2019-01-01 | Tuesday | 3 | +------------+----------+-------------+
DAYOFWEEK () so với DAYOFMONTH ()
Dưới đây là một ví dụ để chứng minh sự khác biệt giữa DAYOFWEEK()
và DAYOFMONTH()
các chức năng.
SET @date = '2019-01-20'; SELECT @date, DAYNAME(@date) AS 'Day Name', DAYOFWEEK(@date) AS 'Day of Week', DAYOFMONTH(@date) AS 'Day of Month';
Kết quả:
+------------+----------+-------------+--------------+ | @date | Day Name | Day of Week | Day of Month | +------------+----------+-------------+--------------+ | 2019-01-20 | Sunday | 1 | 20 | +------------+----------+-------------+--------------+
DAYOFMONTH()
hàm trả về giá trị giữa 1 và 31 (hoặc 0 cho các ngày có phần không ngày) đại diện cho ngày trong tháng. Nó đặt lại về 1 vào đầu mỗi tháng.
DAYOFWEEK()
mặt khác, trả về giá trị trong khoảng 1 và 7 . Nó đặt lại về 1 vào đầu mỗi tuần.
Một ví dụ về cơ sở dữ liệu
Ở đây, chúng tôi thực hiện một điều tương tự với các ví dụ trước, ngoại trừ việc ví dụ này sử dụng dữ liệu từ cơ sở dữ liệu:
USE sakila; SELECT payment_date AS 'Date/Time', DAYNAME(payment_date) AS 'Day Name', DAYOFWEEK(payment_date) AS 'Day of Week' FROM payment WHERE payment_id = 1;
Kết quả:
+---------------------+-----------+-------------+ | Date/Time | Day Name | Day of Week | +---------------------+-----------+-------------+ | 2005-05-25 11:30:37 | Wednesday | 4 | +---------------------+-----------+-------------+
Ngày / Giờ hiện tại
Dưới đây là một ví dụ về việc trích xuất phần ngày từ ngày và giờ hiện tại (được trả về bằng cách sử dụng NOW()
chức năng).
SELECT NOW(), DAYOFWEEK(NOW());
Kết quả:
+---------------------+------------------+ | NOW() | DAYOFWEEK(NOW()) | +---------------------+------------------+ | 2018-06-26 07:42:31 | 3 | +---------------------+------------------+
Một cách khác để làm điều này là sử dụng CURDATE()
, chỉ trả về ngày (chứ không trả về thời gian).
SELECT CURDATE(), DAYOFWEEK(CURDATE());
Kết quả:
+------------+----------------------+ | CURDATE() | DAYOFWEEK(CURDATE()) | +------------+----------------------+ | 2018-06-26 | 3 | +------------+----------------------+