MySQL —— to_char、to_date自定义函数
MySQL —— to_char、to_date自定义函数
之前已分析 MySQL与Oracle在日期操作相关的差异
本文是用自定义函数实现to_char、to_date,此方法适用快速进行数据库兼容,减少代码的改动。
1、to_char
除日期外的类型转 字符串,可用convert(expr, char)或cast(expr as char)。其具体用法可参考 MySQL类型转换函数 —— binary、cast()、convert()
-- 此自定义函数只能解决 日期转字符串格式
-- DELIMITER $$ 定义结束符。MySQL默认的结束符是分号,但是函数体中可能用到分号。为了避免冲突,需要另外定义结束符。
DELIMITER $$
DROP FUNCTION IF EXISTS to_char$$
create function to_char(d datetime, format varchar(40))
returns varchar(40) deterministic
begindeclare str varchar(40) DEFAULT '';set str = replace(format, 'YYYY', '%Y'); set str = replace(str, 'yyyy', '%Y'); set str = replace(str, 'MM', '%m'); set str = replace(str, 'mm', '%m'); set str = replace(str, 'DD', '%d'); set str = replace(str, 'dd', '%d'); set str = replace(str, 'HH24', '%H'); set str = replace(str, 'hh24', '%H'); set str = replace(str, 'HH', '%h'); set str = replace(str, 'hh', '%h'); set str = replace(str, 'MI', '%i'); set str = replace(str, 'mi', '%i'); set str = replace(str, 'SS', '%s'); set str = replace(str, 'ss', '%s'); return date_format(d, str);
end $$
DELIMITER ;
2、to_date
-- TO_DATE
delimiter $$
drop function if exists to_date$$
create function to_date(s varchar(40), format varchar(40))
returns datetime deterministic
begindeclare str varchar(40) DEFAULT '';set str = replace(format, 'YYYY', '%Y'); set str = replace(str, 'yyyy', '%Y'); set str = replace(str, 'MM', '%m'); set str = replace(str, 'mm', '%m'); set str = replace(str, 'DD', '%d'); set str = replace(str, 'dd', '%d'); set str = replace(str, 'HH24', '%H'); set str = replace(str, 'hh24', '%H'); set str = replace(str, 'HH', '%h'); set str = replace(str, 'hh', '%h'); set str = replace(str, 'MI', '%i'); set str = replace(str, 'mi', '%i'); set str = replace(str, 'SS', '%s'); set str = replace(str, 'ss', '%s'); return str_to_date(s, str);
end $$
delimiter ;
补充:
-- Oracle
TO_DATE(column, 'DD MONTH YYYY', 'NLS_DATE_LANGUAGE = American')
-- MySQL
str_to_date(column,'%d-%M-%Y')
MySQL —— to_char、to_date自定义函数相关推荐
- mysql存储过程与自定义函数
2019独角兽企业重金招聘Python工程师标准>>> #mysql存储过程与自定义函数: delimiter $ 1.最简单的存储过程 create procedure test( ...
- mysql存储过程和自定义函数
2019独角兽企业重金招聘Python工程师标准>>> 存储过程简介 SQL语句需要先编辑后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储过程在数据库中,用户通过 ...
- MySQL学习笔记—自定义函数
MySQL学习笔记-自定义函数 注释语法: MySQL服务器支持3种注释风格: 从'#'字符从行尾. 从'– '序列到行尾.请注意'– '(双破折号)注释风格要求第2个破折号后面至少跟一个空格符(例如 ...
- mysql 8.0 自定义函数_PHP+Mysql防止SQL注入的方法(life)
这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 我的官方群点击此处. 方法一: mysql_real_escape_str ...
- Oracle to_char() to_date() to_number()函数
TO_CHAR 是把日期或数字转换为字符串 TO_DATE 是把字符串转换为数据库中得日期类型转换函数 TO_NUMBER 将字符转化为数字 TO_CHAR 使用TO_CHAR函数处理数字 TO_ ...
- mysql 如何创建自定义函数
mysql创建一个函数 delimiter $$ create function 函数名字() returns 返回值类型 begin 函数体- return 返回值(注意类型必须和上面的一样) en ...
- mysql存储过程和自定义函数_MySQL存储过程/存储过程与自定义函数的区别
语法: 创建存储过程: CREATE[definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_paramet ...
- mysql工作日_mysql自定义函数计算时间段内的工作日(支持跨年)
① 同一年的情况下计算工作日函数 CREATE DEFINER=`root`@`%` FUNCTION `WORKDAYSONEYEAR`(`datefrom` datetime,`dateto` d ...
- mysql 经纬度距离 自定义函数_mysql 经纬度计算距离 自定义函数
这些经纬线是怎样定出来的呢? 地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作&quo ...
最新文章
- mysql优化 博客园_MySQL优化
- 多线程和多进程的差别(小结)
- 移动广告平台到底哪个好?哪个能赚的米米多?
- 随机过程:高斯函数导数、梯度
- restful适用于移动互联网厂商作为业务_Restful架构思想
- 二进制转十进制 十进制转二进制
- addEventListener监听
- bat命令打开指定网页进入全屏
- java7 xp版下载64位,xp32位系统可用最高版本jdk64位系统win10 64位系统
- 想长胖的人看过来,几招教你变胖|猎人营
- python实现whois查询_python实现whois查询功能的方法
- [Webpy]在webpy中使用jinja2模板
- 嵌入式开发学习笔记9-做一个好玩的LED闪烁
- 支持向量机检测DGA
- html页面显示代码插件,jQuery – 高亮动态显示页面HTML代码插件
- JAVA容器,什么叫JAVA容器?
- 视频监控国标协议介绍
- python polygon_python – Polygon.contains和Polygon.within有什么区别?
- mysql查询学号和姓名_数据库SQL语句中 查询选修了全部课程的学生的学号和姓名...
- Vue 批量导入 excel 表格数据
热门文章
- C/C++文件IO输入输出操作——FILE*、fstream、windowsAPI
- 音素,音节,单词,句子,语言
- Metric Learning Survey 文章汇总
- UNITY性能优化⭐『图集』在 Unity 2019.x版本前的使用方法,及提供『图集自动化工具』
- 2013年中国互联网创业投资盘点
- 2020年10月18日自考总结
- day7-Stacking与案例(幸福感预测)
- Labview中的隧道和移位寄存器
- oracle的nvl函数返回的类型,oracle的nvl函数的用法-查询结果若是NULL则用指定值代(转) sober...
- Android Studio ListView数据适配器实现通讯录设计(头像加名称)