gpt4 book ai didi

mysql - 日期时间不正确。我做错了什么?

转载 作者:行者123 更新时间:2023-11-30 21:38:27 24 4
gpt4 key购买 nike

我正在尝试将随机日期时间插入到我的表中,但是当我调用该过程时,它显示错误,即我的数据时间值不正确,我不知道为什么。请有人能帮我解释一下吗?

在 datumPredvajanja 中我只想在 casPredvajanja 中设置日期我只想设置时间我该怎么做?我确定我在 datum_predvajanja 中生成的随机时间是正确的。

我的创建语句:

CREATE TABLE IF NOT EXISTS `pb2_pb`.`Spored` (
`ID_Spored` INT NOT NULL,
`datumPredvajanja` DATETIME NOT NULL,
`casPredvajanja` DATETIME NOT NULL,
`aktualno` VARCHAR(45) NOT NULL
)
ENGINE = InnoDB;

我的程序:

DELIMITER //
CREATE PROCEDURE polni_spored (st_sporeda INT)
BEGIN
DECLARE datum_predvajanja DATETIME;
DECLARE cas_predvajanja DATETIME;
DECLARE aktualno VARCHAR(45);
DECLARE stevec INT;
DECLARE konecVal INT;

SET stevec = 0;
SET konecVal = st_sporeda;

WHILE (stevec < konecVal) DO
SET datum_predvajanja = (SELECT DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()) + FLOOR(0 + (RAND() * 63072000))), '%Y-%m-%d'));
SET cas_predvajanja = NOW() - INTERVAL FLOOR(RAND() * 1000) DAY;
SET aktualno = "DA";

INSERT INTO `pb2_pb`.`Spored` (`datumPredvajanja`, `casPredvajanja`, `aktualno`) VALUES ('datum_predvajanja', 'cas_predvajanja', CONCAT(aktualno, (stevec + 1)));

SET stevec = stevec + 1;
END WHILE;
END //

DELIMITER ;

Error Code: 1292. Incorrect datetime value: 'datum_predvajanja' for column 'datumPredvajanja' at row 1

最佳答案

在执行 Insert 时,您不需要在用户定义的字符串变量周围使用单引号。

它应该是下面的:

INSERT INTO `pb2_pb`.`Spored` (`datumPredvajanja`, 
`casPredvajanja`,
`aktualno`)
VALUES (datum_predvajanja,
cas_predvajanja,
CONCAT(aktualno, (stevec + 1))
);

此外,不要对字符串文字使用双引号。虽然 MySQL 允许,但它不符合 ANSI SQL 标准。始终最好在字符串文字周围使用单引号。

而不是 SET aktualno = "DA"; 它应该是:

SET aktualno = 'DA';

此外,为声明的变量设置默认值也是一种很好的做法。例如:

DECLARE aktualno VARCHAR(45) DEFAULT '';
DECLARE stevec INT DEFAULT 0;
DECLARE konecVal INT DEFAULT 0;

关于mysql - 日期时间不正确。我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52856765/

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