gpt4 book ai didi

mysql - 使用 Least() 赋值

转载 作者:行者123 更新时间:2023-11-29 22:31:27 27 4
gpt4 key购买 nike

我正在触发器内使用循环来更新 MySQL 数据库中的层次结构关系。表是INNO。

我拥有的是:

SET vDateCounter = NEW.DateTime;

问题是这只能在一半的时间内起作用。如果 UPDATE 包含更新的 DateTime,则我的循环开始,但它不会重新处理 OLD.DateTime,也不会重新处理 OLD.DateTime 和 NEW.DateTime 之间的任何事件。

例如,如果我将“2015-04-20 06:00:00”更改为“2015-04-20 18:00:00”,我希望更新循环始终以两个日期时间中最小的一个开始。

我想做的是:

SET vDateCounter = (SELECT LEAST(OLD.DateTime, NEW.DateTime));

关于最佳方法有什么想法吗?

最佳答案

您可以使用函数并从触发器中进行调用。

CREATE FUNCTION [dbo].[FN_Least] 
(
@date1 datetime,
@date2 datetime
)
RETURNS datetime
AS
BEGIN
DECLARE @vDateCounter datetime

SELECT @vDateCounter= min(dateLeast)
FROM (
SELECT @date1 AS dateLeast
UNION ALL
SELECT @date2 AS dateLeast
) AS dates
RETURN @vDateCounter
END

在触发器中选择它。

SELECT dbo.FN_Least('2015-04-21 06:00:00','2015-04-20 18:00:00')

关于mysql - 使用 Least() 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29745128/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com