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

Ví dụ về DAYOFYEAR () - MySQL

Khi chạy các truy vấn trong MySQL, bạn có thể sử dụng DAYOFYEAR() hàm để trả về ngày trong năm kể từ một ngày.

Hàm này chấp nhận một đối số và nó trả về giá trị trong khoảng 1 366 , tùy thuộc vào ngày nào trong năm mà phần ngày của đối số thể hiện.

Cú pháp

Cú pháp như sau:

DAYOFYEAR(date)

Nơi date là giá trị ngày mà bạn muốn trả về ngày trong năm.

Ví dụ

Đây là một ví dụ để chứng minh.

SELECT 
    DAYOFYEAR('2019-01-01') AS 'Date 1',
    DAYOFYEAR('2019-12-31') AS 'Date 2';

Kết quả:

+--------+--------+
| Date 1 | Date 2 |
+--------+--------+
|      1 |    365 |
+--------+--------+

Trong ví dụ này, để chứng minh hiệu quả thích hợp, tôi chạy hàm này hai lần vào hai ngày khác nhau - một vào đầu năm và một vào cuối năm.

DAYOFYEAR () so với DAYOFMONTH ()

Dưới đây là một ví dụ để chứng minh sự khác biệt giữa DAYOFYEAR()DAYOFMONTH() các chức năng.

SET @date = '2019-10-03';
SELECT 
    @date,
    DAYOFMONTH(@date) AS 'Day of Month',
    DAYOFYEAR(@date) AS 'Day of Year';

Kết quả:

+------------+--------------+-------------+
| @date      | Day of Month | Day of Year |
+------------+--------------+-------------+
| 2019-10-03 |            3 |         276 |
+------------+--------------+-------------+

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.

DAYOFYEAR() mặt khác, trả về giá trị trong khoảng 1 366 . Nó đặt lại về 1 vào đầu mỗi năm.

Một ví dụ về cơ sở dữ liệu

Đây là ví dụ về việc sử dụng DAYOFYEAR() khi truy vấn cơ sở dữ liệu:

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  DAYOFYEAR(payment_date) AS 'Day of Year'
FROM payment
WHERE payment_id = 1;

Kết quả:

+---------------------+-------------+
| Date/Time           | Day of Year |
+---------------------+-------------+
| 2005-05-25 11:30:37 |         145 |
+---------------------+-------------+

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(),
    DAYOFYEAR(NOW());

Kết quả:

+---------------------+------------------+
| NOW()               | DAYOFYEAR(NOW()) |
+---------------------+------------------+
| 2018-06-26 08:23:04 |              177 |
+---------------------+------------------+

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(),
    DAYOFYEAR(CURDATE()); 

Kết quả:

+------------+----------------------+
| CURDATE()  | DAYOFYEAR(CURDATE()) |
+------------+----------------------+
| 2018-06-26 |                  177 |
+------------+----------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích hoạt hỗ trợ MySQL InnoDB Storage Engine trong cài đặt XAMPP

  2. COUNT (*) từ nhiều bảng trong MySQL

  3. Truy vấn SQL:Xóa tất cả các bản ghi khỏi bảng ngoại trừ N mới nhất?

  4. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Fedora 14

  5. Truy vấn nhiều cơ sở dữ liệu cùng một lúc