太阳集团所有网址16877mysql中格式化日期详解

几个平常用的mysql函数,MySql判断汉字、日期、数字的具体函数分享给大家,具体内容如下

1. DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。

1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字

DATE_FORMAT(date,format) 
DROP FUNCTION IF EXISTS fc_is_hanzi;

CREATE FUNCTION fc_is_hanzi(
p_str VARCHAR(1024)
)
  RETURNS int(11)
  NOT DETERMINISTIC
  SQL SECURITY DEFINER
  COMMENT '检查字符串是否为汉字'
BEGIN
/*检查字符串是否为汉字 返回值:1-汉字 0-非汉字*/

  DECLARE _ret, i, other_cnt, l_acode INT DEFAULT 0;
  SET _ret = 0;
  SET i = 1;
  SET other_cnt = 0;
  SET l_acode = 0;
  WHILE i <= CHAR_LENGTH(p_str) DO
    SET l_acode = ASCII(SUBSTRING(p_str, i, 1));
    IF l_acode<124 or l_acode>254 THEN
      SET other_cnt = other_cnt   1;
    END IF;
    SET i = i   1;
  END WHILE;
  IF other_cnt = 0 THEN
    SET _ret = 1;
  ELSE
    SET _ret = 0;
  END IF;
  RETURN _ret;
END;

format参数的格式有

2.判断日期格式是否正确(返回值:1-正确 0-错误)

%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位
DROP FUNCTION IF EXISTS fc_ck_date;

CREATE FUNCTION fc_ck_date(
p_cont CHAR(32) 
)
  RETURNS tinyint(4)
  NOT DETERMINISTIC
  SQL SECURITY DEFINER
  COMMENT '判定日期格式是否正确'
BEGIN
/*判定日期格式是否正确(返回值:1-正确 0-错误)*/
/*输入值格式为:yyyyMMdd 或 yyyy-MM-dd*/

IF(SELECT DATE_FORMAT(p_cont,'%Y%m%d')) IS NULL THEN
  RETURN 0;
ELSE
  RETURN 1;
END IF;

END;

例子:

3.判断字符串是否为纯数字(返回值:1-为纯数字 0-非纯数字)

DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') 
DATE_FORMAT(NOW(),'%m-%d-%Y') 
DATE_FORMAT(NOW(),'%d %b %y') 
DATE_FORMAT(NOW(),'%d %b %Y %T:%f') 
DROP FUNCTION IF EXISTS fc_is_num;

CREATE FUNCTION fc_is_num(
p_string VARCHAR(32) 
)
  RETURNS int(4)
  NOT DETERMINISTIC
  SQL SECURITY DEFINER
  COMMENT '检查字符串是否为纯数字'
BEGIN
/*检查字符串是否为纯数字*/
/*返回值:1-为纯数字 0-非纯数字*/

   DECLARE iResult INT DEFAULT 0;
   SELECT p_string REGEXP '^[0-9]*$' INTO iResult;
   IF iResult = 1 THEN
    RETURN 1;
   ELSE
     RETURN 0;
   END IF;
END;

输出结果:

以上就是MySql判断汉字、日期、数字的三段函数,希望对大家的学习有所帮助。

Dec 29 2008 11:45 PM 
12-29-2008 
29 Dec 08 
29 Dec 2008 16:25:46 

您可能感兴趣的文章:

  • Mysql根据时间查询日期的优化技巧
  • mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间
  • 解析MySQL中存储时间日期类型的选择问题
  • JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql
  • MySQL 获得当前日期时间 函数
  • 浅谈MySQL数据库中日期中包含零值的问题
  • MySQL查询两个日期之间记录的方法
  • 详解MySQL日期 字符串 时间戳互转
  • 详解mysql 获取当前日期及格式化
  • mysql中格式化日期详解
  • mysql如何查询两个日期之间最大的连续登录天数
  • mysql日期date型和int型互换的方法
  • mysql记录根据日期字段倒序输出
  • mysql常用日期时间/数值函数详解(必看)
  • MySQL中日期和时间戳互相转换的函数和方法
  • Mysql获取当前日期的前几天日期的方法
  • mysql 获取当前日期函数及时间格式化参数详解
  • MySQL日期函数与日期转换格式化函数大全

2. MySQL 格式化函数 FROM_UNIXTIME()

SELECT FROM_UNIXTIME(date, '%Y-%c-%d %h:%i:%s' ) as post_date , 
date_format(NOW(), '%Y-%c-%d %h:%i:%s' ) as post_date_gmt 
FROM `article` where outkey = 'Y' 

1、FROM_UNIXTIME( unix_timestamp )

参数:一般为10位的时间戳,如:1417363200

返回值:有两种,可能是类似 'YYYY-MM-DD HH:MM:SS' 这样的字符串,也有可能是类似于 YYYYMMDDHHMMSS.uuuuuu这样的数字,具体返回什么取决于该函数被调用的形式。

本文由太阳集团所有网址16877发布于www.16877.com,转载请注明出处:太阳集团所有网址16877mysql中格式化日期详解

您可能还会对下面的文章感兴趣: