【原创】ORACLE的几个函数在MYSQL里面的简单实现-阿里云开发者社区

开发者社区> 科技小能手> 正文

【原创】ORACLE的几个函数在MYSQL里面的简单实现

简介:
+关注继续查看

 最忌在做ORACLE到MYSQL得迁移,以下我写了三个简单的MYSQL里面米有的函数。 供大家参考。 

 
 
判断是否为时间?
 

  1. DELIMITER $$ 
  2.  
  3. USE `ytt`$$ 
  4.  
  5. DROP FUNCTION IF EXISTS `is_date`$$ 
  6.  
  7. CREATE DEFINER=`root`@`localhost` FUNCTION `is_date`( 
  8. f_in CHAR(19)) RETURNS TINYINT(4) 
  9. BEGIN 
  10.   -- Created by david.yang 2012/8/9. 
  11.   IF UNIX_TIMESTAMP(f_in) = 0 THEN 
  12.     RETURN 0; 
  13.   ELSE 
  14.     RETURN 1; 
  15.   END IF; 
  16. END$$ 
  17.  
  18. DELIMITER ; 
 
判断是否为数字?
 

  1. DELIMITER $$ 
  2.  
  3. USE `ytt`$$ 
  4.  
  5. DROP FUNCTION IF EXISTS `is_number`$$ 
  6.  
  7. CREATE DEFINER=`root`@`localhost` FUNCTION `is_number`( 
  8.     f_in VARCHAR(255)) RETURNS TINYINT(4) 
  9. label1:BEGIN 
  10.     -- Created by david.yang 2012/8/9. 
  11.     DECLARE cnt INT UNSIGNED DEFAULT 0; 
  12.     DECLARE i INT UNSIGNED DEFAULT 1; 
  13.     DECLARE j INT UNSIGNED DEFAULT 0; 
  14.     SET cnt = LENGTH(f_in); 
  15.     loop1:WHILE i < cnt 
  16.     DO 
  17.       SET j = ASCII(SUBSTR(f_in,i,1)); 
  18.       IF  j < 48 OR j > 57 THEN 
  19.         RETURN 0; 
  20.         LEAVE label1; 
  21.       END IF; 
  22.       SET i = i + 1; 
  23.     END WHILE loop1; 
  24.     RETURN 1; 
  25.   END$$ 
  26.  
  27. DELIMITER ; 
 
 
 
ORACLE to_date 函数的MYSQL实现。
 

  1. DELIMITER $$ 
  2.  
  3. USE `ytt`$$ 
  4.  
  5. DROP FUNCTION IF EXISTS `to_date`$$ 
  6.  
  7. CREATE DEFINER=`root`@`localhost` FUNCTION `to_date`( 
  8.     f_date VARCHAR(30), f_format VARCHAR(30) 
  9.     ) RETURNS VARCHAR(30) CHARSET utf8 
  10. BEGIN 
  11.     -- '20-08-2011 22:55:02', 'dd-mm-yyyy hh24:mi:ss' 
  12.     -- '02-11-2011', 'dd-mm-yyyy' 
  13.     -- Created by david.yang 2012/8/9. 
  14.     DECLARE i_year CHAR(4); 
  15.     DECLARE i_month CHAR(2); 
  16.     DECLARE i_day CHAR(2); 
  17.     DECLARE i_time CHAR(8); 
  18.     SET i_year = SUBSTR(f_date,7,4); 
  19.     SET i_month = SUBSTR(f_date,4,2); 
  20.     SET i_day = LEFT(f_date,2); 
  21.      
  22.     IF LENGTH(f_date) = 10 THEN 
  23.       SET i_time = ''
  24.     ELSE 
  25.       SET i_time = RIGHT(f_date,8); 
  26.     END IF; 
  27.     RETURN CONCAT(i_year,'-',i_month,'-',i_day,' ',i_time); 
  28.     END$$ 
  29.  
  30. DELIMITER ; 




本文转自 david_yeung 51CTO博客,原文链接:http://blog.51cto.com/yueliangdao0608/962065,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用 NodeJS+Express+MySQL 实现简单的增删改查
关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www.jianshu.
2480 0
谷歌百度以图搜图 "感知哈希算法" C#简单实现
/// /// 感知哈希算法 /// public class ImageComparer { /// /// 获取图片的Hashcode /// /// /// public static string GetImageHashCode(string imageName) { int width = 8; int height = 8; // 第一步 // 将图片缩小到8x8的尺寸,总共64个像素。
1617 0
WAF的简单介绍及实现
WAF的简单介绍及实现
180 0
mysql的rand函数
项目中需要动态随机生成一些固定位数的随机数,如8位,5位等。 之前看到的写法是这样  ROUND(ROUND(RAND(),5)*100000) 这样写不太准确,有几率出现4位的情况,Rand() 函数是取  0 ~ 1(无限接近) 的随机函数 如果 某此随机数取出的 是  0.05321 那么这样转化出来的就是 5321 ,只有4位。
698 0
php系列----->通过PHP数组实现简单的顺序栈
废话少说,上代码(talk is easy,show me the code):
493 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载