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

Sử dụng tham số thủ tục được lưu trữ cho tham số đơn vị của DATE_SUB

Những gì bạn đang cố gắng thực hiện không thể thực hiện được trong một quy trình được lưu trữ, dù có hoặc không có một tuyên bố đã chuẩn bị sẵn.

Bạn có thể làm điều gì đó tương tự như sau:

DELIMITER $$

DROP PROCEDURE IF EXISTS test_proc $$
CREATE PROCEDURE  test_proc(param1 varchar(20))
BEGIN

  CASE UPPER(param1)
    WHEN 'MICROSECOND' THEN select DATE_SUB(now(), INTERVAL 1 MICROSECOND); 
    WHEN 'SECOND' THEN select DATE_SUB(now(), INTERVAL 1 SECOND);
    WHEN 'MINUTE' THEN select DATE_SUB(now(), INTERVAL 1 MINUTE);
    WHEN 'HOUR' THEN select DATE_SUB(now(), INTERVAL 1 HOUR);
    WHEN 'DAY' THEN select DATE_SUB(now(), INTERVAL 1 DAY);
    WHEN 'WEEK' THEN select DATE_SUB(now(), INTERVAL 1 WEEK);
    WHEN 'MONTH' THEN select DATE_SUB(now(), INTERVAL 1 MONTH);
    WHEN 'QUARTER' THEN select DATE_SUB(now(), INTERVAL 1 QUARTER);
    WHEN 'YEAR' THEN select DATE_SUB(now(), INTERVAL 1 YEAR);
    ELSE select 'UNEXPECTED UNIT';
  END CASE;

END $$

DELIMITER ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. danh mục mysql và danh sách danh mục phụ

  2. MySQL:Cột 'column_name' trong đó mệnh đề không rõ ràng

  3. Làm cách nào để nhận phần trăm tổng số khi truy vấn có GROUP BY?

  4. MySQL DELETE FROM với truy vấn con là điều kiện

  5. Cùng một ứng dụng, các cơ sở dữ liệu khác nhau:Entity framework 6.X + MySQL + SQL Server