Jsonでリクエストされた漢字の時刻を秒数に変換して MySQL に登録する必要あり作ってみましたが、
Javascriptであらかじめ変換してからリクエストすることにしたので、使ってません。
動作確認出来てないですが、必要な方はご利用下さい。
CREATE DEFINER=`root`@`localhost` FUNCTION `fc_intsecond_fromkanji`(
`kanji` varchar(20)
)
RETURNS int(11)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '漢字時間文字列整数秒数取得'
BEGIN
DECLARE CNT_SEP TINYINT DEFAULT 0;
DECLARE HMSTXT VARCHAR(20) DEFAULT '';
DECLARE FMTTXT VARCHAR(20) DEFAULT '';
DECLARE CHKNUM TINYINT DEFAULT 0;
DECLARE TP VARCHAR(3) DEFAULT '';
DECLARE H SMALLINT DEFAULT 0;
DECLARE M TINYINT DEFAULT 0;
DECLARE S TINYINT DEFAULT 0;
SET HMSTXT = REPLACE(REPLACE(REPLACE(kanji, '時間', 'H'), '分', 'M'), '秒', 'S');
SET FMTTXT = REPLACE(REPLACE(REPLACE(kanji, '時間', ':'), '分', ':'), '秒', '');
SET TP =
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(HMSTXT, '0', ''),
'1', ''), '2', ''), '3', ''), '4', ''), '5', ''), '6', ''), '7', ''), '8', ''), '9', '')
;
insert into tst (fld0, fld1) values (HMSTXT, TP);
IF (TP = 'HMS') THEN
SET H = CAST(fc_delim_idxtxt(FMTTXT, 1, ':') AS UNSIGNED);
SET M = CAST(fc_delim_idxtxt(FMTTXT, 2, ':') AS UNSIGNED);
SET S = CAST(fc_delim_idxtxt(FMTTXT, 3, ':') AS UNSIGNED);
END IF;
/**/
IF (TP = 'HS') THEN
SET H = CAST(fc_delim_idxtxt(FMTTXT, 1, ':') AS UNSIGNED);
SET S = CAST(fc_delim_idxtxt(FMTTXT, 2, ':') AS UNSIGNED);
END IF;
IF (TP = 'HM') THEN
SET H = CAST(fc_delim_idxtxt(FMTTXT, 1, ':') AS UNSIGNED);
SET M = CAST(fc_delim_idxtxt(FMTTXT, 2, ':') AS UNSIGNED);
END IF;
IF (TP = 'MS') THEN
SET M = CAST(fc_delim_idxtxt(FMTTXT, 1, ':') AS UNSIGNED);
SET S = CAST(fc_delim_idxtxt(FMTTXT, 2, ':') AS UNSIGNED);
END IF;
/**/
IF (TP = 'H') THEN
SET H = CAST(fc_delim_idxtxt(FMTTXT, 1, ':') AS UNSIGNED);
END IF;
IF (TP = 'M') THEN
SET M = CAST(fc_delim_idxtxt(FMTTXT, 1, ':') AS UNSIGNED);
END IF;
IF (TP = 'S') THEN
SET S = CAST(FMTTXT AS UNSIGNED);
END IF;
RETURN H * 3600 + M * 60 + S;
END
コメントを投稿するにはログインしてください。