gpt4 book ai didi

mysql - 将 IN 参数存储在存储过程的变量中

转载 作者:行者123 更新时间:2023-11-29 14:34:18 25 4
gpt4 key购买 nike

我正在创建一个存储过程,其中,

我将 2 个 IN 参数作为“年”和“月”传递给过程,

然后“我需要将这两个 IN 参数以 date_format 存储在一个变量中,例如 ('YYYY-MM-DD')。”

之后我想将该变量与该 Date_Format 一起使用。

我将尝试以存储过程的格式解释上述内容

CREATE PROCEDURE build_table(IN years CHAR(5) ,IN months CHAR(4))
BEGIN
DECLARE format1 date ;

# Now i want to store both IN parameters in 'format1' variable and then format1 should be in format 'YYYY-MM-DD'

我可以在存储过程中执行此操作吗?

如果是,请给我一些指导。

最佳答案

确实可以使用此变体 -

SET @year = 2012;
SET @month = 2;
SELECT STR_TO_DATE(CONCAT(@year, '-', @month), '%Y-%c');

STR_TO_DATE函数将帮助您创建日期值。使用 IN 参数更改 @year 和 @month 变量。

然后您可以使用 DATE_FORMAT 函数来格式化日期时间值,例如:

SET @year = 2012;
SET @month = 2;
SET @dt = STR_TO_DATE(CONCAT(@year, '-', @month), '%Y-%c');
SELECT DATE_FORMAT(@dt, '%m/%d/%Y');
+------------------------------+
| DATE_FORMAT(@dt, '%m/%d/%Y') |
+------------------------------+
| 02/00/2012 |
+------------------------------+
<小时/>
CREATE PROCEDURE build_table(IN years CHAR(5), IN months CHAR(4))
BEGIN
DECLARE format1 date;
SET format1 = DATE_SUB(STR_TO_DATE(CONCAT(years, '-', months, '-01'), '%Y-%c-%e'), INTERVAL 1 DAY);


SELECT format1;
END

CALL build_table(2012, 1);
+------------+
| format1 |
+------------+
| 2011-12-31 | -- default format is 'YYYY-MM-DD'
+------------+

关于mysql - 将 IN 参数存储在存储过程的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9394732/

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