H2 DB SQL,如何制作昨天日期的变量并在之后调用它

H2 DB SQL, how to make a variable of the yersterday's date and call it after

这是一个例子,我如何才能 select 前一天

SELECT DATEADD(day, -1, CAST(Current_date AS date)) AS YesterdayDate;

这是我的插入内容,如何让 YesterdayDate 在此示例中保持真实日期?

INSERT INTO dish(id, name, date_added, price, restaurant_id)
    VALUES (14, 'SomeDish', YesterdayDate, 120,2);
         INSERT INTO dish(id, name, date_added, price, restaurant_id)
VALUES (14, 'SomeDish', DATEADD(day, -1, CAST(Current_date AS date)), 120,2);

希望,你已经试过了

您需要使用用户自定义变量:

SET @YesterdayDate = CURRENT_DATE - INTERVAL '1' DAY;

INSERT INTO dish(id, name, date_added, price, restaurant_id)
    VALUES (14, 'SomeDish', @YesterdayDate, 120, 2);

这些变量不会持久化,它们仅在当前会话中可见。它们以 @ 符号为前缀。

如果您需要在其他会话中使用该变量,您可以创建一个常量来代替:

CREATE CONSTANT YesterdayDate VALUE CURRENT_DATE - INTERVAL '1' DAY;
INSERT INTO dish(id, name, date_added, price, restaurant_id)
    VALUES (14, 'SomeDish', YesterdayDate, 120, 2);

-- After use
DROP CONSTANT YesterdayDate;

常量保存在数据库中,并且在所有会话中都可见。他们的名字按原样使用。

第二天不会自动更新用户定义的变量和常量的值。

这些变量和常量不能跨不同的 DBMS 移植。