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

Có cách nào để nhận được Ngày đầu tiên và Ngày cuối cùng của tháng không?

Cách xác định các hàm FIRST_WDOM() (tuần / ngày làm việc trong tháng) và LAST_WDOM() theo kiểu LAST_DAY() ?

DELIMITER //
CREATE FUNCTION first_wdom (d DATETIME) -- First work/week day of month
RETURNS DATE DETERMINISTIC
BEGIN
  DECLARE first_dom DATE;
  SET first_dom = DATE_FORMAT(d, '%Y-%m-01');

  RETURN first_dom + INTERVAL (CASE DAYOFWEEK(first_dom)
                               WHEN 1 THEN 1
                               WHEN 7 THEN 2
                               ELSE 0
                               END) DAY;
END //
CREATE FUNCTION last_wdom (d DATETIME) -- Last work/week day of month
RETURNS DATE DETERMINISTIC
BEGIN
  DECLARE last_dom DATE;
  SET last_dom = LAST_DAY(d);

  RETURN last_dom - INTERVAL (CASE DAYOFWEEK(last_dom)
                              WHEN 1 THEN 2
                              WHEN 7 THEN 1
                              ELSE 0
                              END) DAY;
END //
DELIMITER ;

mysql> SELECT FIRST_WDOM('2011-05-10'), LAST_WDOM('2011-05-10');
+--------------------------+-------------------------+
| FIRST_WDOM('2011-05-10') | LAST_WDOM('2011-05-10') |
+--------------------------+-------------------------+
| 2011-05-02               | 2011-05-31              | 
+--------------------------+-------------------------+
1 row in set (0.01 sec)

Đây chỉ là sự chuyển thể của câu trả lời của ic3b3rg và giả định rằng Thứ Bảy và Chủ Nhật là những ngày cuối tuần của bạn. Tôi sử dụng DATETIME, thay vì DATE, làm loại đầu vào để tránh cảnh báo cắt ngắn khi chuyển vào, chẳng hạn như NOW() .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC PreparedStatement - Sử dụng cùng một đối số, có được không?

  2. Sqlalchemy, truy vấn thô và các tham số

  3. Php 5.3 magick trích dẫn gpc

  4. làm thế nào để truy vấn nhiều-nhiều?

  5. Lỗi với truy vấn Symfony:Dự kiến ​​Literal, đã nhận ''