Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ví dụ DAYOFWEEK () - MySQL

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()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 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 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 |
+------------+----------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt Adminer trên ứng dụng riêng của nó

  2. Đặt múi giờ trong PHP và MySQL

  3. Mẹo nâng cấp Percona XtraDB Cluster lên 8.0

  4. Lỗi khi gửi gói QUERY

  5. Làm cách nào để kết nối với MySQL trên Amazon EC2 từ Windows?