Сохранить параметр IN в переменной хранимой процедуры - PullRequest
0 голосов
/ 22 февраля 2012

Я создаю хранимую процедуру, в которой

Я передаю 2 IN-параметра в виде «год» и «месяц» процедуре,

затем «Мне нужно сохранить оба этих параметра.Параметры IN в одной переменной в формате date_format («ГГГГ-ММ-ДД»). "

И после этого я хочу использовать эту переменную с этим 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' 

Могу ли я сделать это в хранимой процедуре?

Если да, дайте мне некоторое руководство.

1 Ответ

1 голос
/ 22 февраля 2012

Как использовать этот вариант -

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

Функция STR_TO_DATE поможет вам установить значение даты.Измените переменные @year и @month с параметрами IN.

Затем вы можете использовать функцию 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'
+------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...