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

Là một ngày trong một số khoảng thời gian

Chức năng này sẽ làm những gì bạn muốn. Nó dựa vào MySQL xử lý kết quả boolean là 1 hoặc 0 trong ngữ cảnh số, do đó MAX cuộc gọi hiệu quả trở thành một OR của tất cả các điều kiện.

CREATE FUNCTION check_activity(project_id INT, check_date DATE)
RETURNS BOOLEAN
DETERMINISTIC
BEGIN
  RETURN (SELECT MAX(check_date BETWEEN ActiveFrom AND ActiveTo) FROM projects WHERE ProjId = project_id);
END
SELECT check_activity(20, '2018-01-10'), check_activity(20, '2018-02-01')

Đầu ra

check_activity(20, '2018-01-10')    check_activity(20, '2018-02-01')
1                                   0

Bản trình diễn trên dbfiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn PDO vào DB

  2. truy vấn tốn kém làm hỏng máy chủ cơ sở dữ liệu - đang tìm cách giảm thiểu

  3. Xóa X dòng đầu tiên của cơ sở dữ liệu

  4. Làm cách nào để lấy tên cột từ một bảng MySQL nhất định?

  5. # 1067 - Giá trị mặc định không hợp lệ cho 'bonusid', làm cách nào để khắc phục lỗi này?