mysql CREATE FUNCTION HelloWorld4()
作為一家“創(chuàng)意+整合+營(yíng)銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)公司提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營(yíng)銷運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷方法,創(chuàng)造更大的價(jià)值。
- RETURNS VARCHAR(20)
- BEGIN
- RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! |
+---------------+
1 row in set (0.00 sec)
如果你會(huì)其它數(shù)據(jù)庫(kù)的話, 那么看看那個(gè) SQL 存儲(chǔ)過(guò)程編寫 參考手冊(cè) 對(duì)你會(huì)有些幫助。
UPDATE
`表名`
SET
`參加工作`
=
(SELECT
DATE_ADD(Birthday,
INTERVAL
`WorkYear`
YEAR));
會(huì)把所有的
`參加工作時(shí)間`
列修改為
Birthday
+
WorkYear
DATE_ADD函數(shù)使用說(shuō)明: DATE_ADD(date,
INTERVAL
expr
type);
第一個(gè)參數(shù)date,可以是date類型或者datetime類型;
第二個(gè)參數(shù)INTERVAL
expr
type;INTERVAL
是指明相加的間隔,
expr是表達(dá)式,間隔的值,可以為列名,如
`WorkYear`;type是指定那部分相加,如
YEAR,只相加YEAR部分,其它不變,可以為其它類型如:DAY_HOUR,MINUTE_SECOND
。
mysql CREATE FUNCTION HelloWorld4()
- RETURNS VARCHAR(20)
- BEGIN
- ? RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! ?|
+---------------+
1 row in set (0.00 sec) ...展開mysql CREATE FUNCTION HelloWorld4()
- RETURNS VARCHAR(20)
- BEGIN
- ? RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! ?|
+---------------+
1 row in set (0.00 sec)
語(yǔ)法:Create function function_name(參數(shù)列表)returns返回值類型
函數(shù)體 函數(shù)名,應(yīng)合法的標(biāo)識(shí)符,不應(yīng)與系統(tǒng)關(guān)鍵字沖突。
一個(gè)函數(shù)應(yīng)該屬于某個(gè)數(shù)據(jù)庫(kù),可以使用db_name.funciton_name的形式執(zhí)行當(dāng)前函數(shù)所屬數(shù)據(jù)庫(kù),否則為當(dāng)前數(shù)據(jù)庫(kù)。
參數(shù)部分,由參數(shù)名和參數(shù)類型組成。
返回值類類型.注意,一定要有return返回值語(yǔ)句。
創(chuàng)建第一個(gè)函數(shù):
mysql DROP FUNCTION IF EXISTS SP_FUNC_DBDH_ONE -- 刪掉已存在函數(shù) DELIMITER -- 定義分隔符,必須要有 ,本例為 可以為得數(shù)字符,例如: $$,%%,**
mysql CREATE FUNCTION SP_FUNC_DBDH_ONE( PARA_VAR varchar(30)) -- 多個(gè)參數(shù)用,分割 參數(shù)
的類型必須是mysql列存在的類型
- RETURNS VARCHAR(100) -- 指定返回值類型,如果你不確定返回
文本長(zhǎng)度,可以使用text
- BEGIN
- DECLARE NAYIBU_FIR VARCHAR(30) DEFAULT 'THIS IS MY FIRST,'; -- 定義變量,設(shè)置默認(rèn)值
- SET NAYIBU_FIR = concat(NAYIBU_FIR,PARA_VAR);
- RETURN NAYIBU_FIR; -- 返回值
- END $$
后面有你在前面定義的分割符號(hào)
Query OK, 0 rows affected (0.00 sec)
mysql DELIMITER
調(diào)用自定義函數(shù),輸出結(jié)果如下:
mysql SELECT SP_FUNC_DBDH_ONE('PROGRAM');
+------------------------------+
| SP_FUNC_DBDH_ONE('PROGRAM') |
+------------------------------+
| 'THIS IS MY FIRST, PROGRAM |
+------------------------------+
1 row in set (0.00 sec)
MySQL 自己不帶有 to_char 這個(gè)函數(shù)的。
你要模仿 Oracle, 寫一個(gè) MySQL 的 TO_CHAR 函數(shù)?
這個(gè)恐怕有點(diǎn)麻煩。
因?yàn)?Oracle 的 TO_CHAR 是可以把 日期型的, 數(shù)值型的, 轉(zhuǎn)換為 字符類型。
你這個(gè)MySQL 下的 to_char , 只要轉(zhuǎn)換日期呢? 還是轉(zhuǎn)換 數(shù)字?