mySQL日期函数并运行_mysql日期相关的函数
1、获取当前时间:
/**
获得当前日期+时间(date + time)函数:now(), 常用
**/
select now() fromdual;/**
获取当前时间戳,current_timestamp或者current_timestamp()
**/
select current_timestamp, current_timestamp() fromdual;/**
获得当前日期+时间(date + time)函数:sysdate(),
和now()不同的是,now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值
**/
select now(), sleep(3), sysdate() from dual;
运行结果:
2、日期/时间操作
如果在日期列上有索引,在进行操作不建议对这些字段进行日期函数操作,因为这样该列的索引将无效。应该转换一下思路,对操作的值进行函数操作,而非列。
其中日期格式化的format串有:
说明符
说明
%a
工作日的缩写名称 (Sun..Sat)
%b
月份的缩写名称 (Jan..Dec)
%c
月份,数字形式(0..12)
%D
带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, ...)
%d
该月日期, 数字形式 (00..31)
%e
该月日期, 数字形式(0..31)
%f
微秒 (000000..999999)
%H
小时(00..23)
%h
小时(01..12)
%I
小时 (01..12)
%i
分钟,数字形式 (00..59)
%j
一年中的天数 (001..366)
%k
小时 (0..23)
%l
小时 (1..12)
%M
月份名称 (January..December)
%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位数)
%%
‘%’文字字符
2.1、日期/时间转字符串、字符串转日期/时间
常用:
1 /**2 将日期格式化成字符串,mysql在日期的处理上比较宽松,data_format的第一个参数是日期格式的字符串其实也能解析,不过不建议这么操作3 **/
4 select DATE_FORMAT(now(),'%Y%m%d %H:%i:%s');5 select DATE_FORMAT('20160711111203','%Y-%m-%d %H:%i:%s');6
7 /**8 将日期格式的字符串转换成日期/时间,该format字符串支持date和time9 **/
10 select STR_TO_DATE('2016-07-11 11:12:03','%Y-%m-%d %H:%i:%s');11
12 /**13 将time(不包括日期)转换成字符串形式14 **/
15 select TIME_FORMAT(now(),'%Y%m%d %H:%i:%s');
运行结果:
20160712 11:27:47
2016-07-11 11:12:03
2016-07-11 11:12:03
00000000 11:27:47
其他:
(日期、天数)转换函数:to_days(date), from_days(days)
/**
结果:736522
**/
select TO_DAYS(now()) fromdual;/**
结果:1916-07-15
**/
select FROM_DAYS(736522) from dual;
(时间、秒)转换函数:time_to_sec(time), sec_to_time(seconds)
/**
结果:3605
**/
select time_to_sec('01:00:05');/**
结果:01:00:05
**/
select sec_to_time(3605);
拼凑日期、时间函数:makdedate(year,dayofyear), maketime(hour,minute,second)
/**
结果:2016-01-30
**/
select makedate(2016,30);/**
结果:2016-02-01
**/
select makedate(2016,32);/**
结果:12:15:30
**/
select maketime(12,15,30);
(Unix 时间戳、日期)转换函数:unix_timestamp(),unix_timestamp(date),from_unixtime(unix_timestamp),from_unixtime(unix_timestamp,format)
select now(),unix_timestamp(); --2016-07-12 11:41:56 , 1468294916
select unix_timestamp('2016-07-12'); --1468252800
select unix_timestamp('2016-07-12 11:38:37'); --1468294717
select from_unixtime(1468294702); --2016-07-12 11:38:22
select from_unixtime(1468294717); --2016-07-12 11:38:37
select from_unixtime(1468294717, '%Y %D %M %h:%i:%s %x'); --2016 12th July 11:38:37 2016
2.2、日期计算函数
日期/时间的加减:DATE_ADD(date,INTERVAL expr type) 、DATE_SUB(date,INTERVAL expr type)
还有几个跟上面2个方法差不多的方法,不过可以用上面2个替换掉
/**
和DATE_ADD()是一样的
**/ADDDATE(date,INTERVAL expr type)/**
简写,直接加多少天,例如:select ADDDATE(now(),1)
**/ADDDATE(expr,days)/**
和DATE_SUB()是一样的
**/SUBDATE(date,INTERVAL expr unit)/**
简写,直接减多少天,例如:select SUBDATE(now(),1)
**/SUBDATE(expr,days)
另外还有ADDTIME(expr1,expr2)、 SUBTIME(expr1,expr2)
例子:
/**
增加一天 数字为负数则为减一天
结果为:2016-07-12 14:16:13 , 2016-07-13 14:16:13
**/
select now(),date_add(now(), interval 1 day);/**
减掉一天
结果为:2016-07-12 14:16:13 , 2016-07-11 14:16:13
**/
select now(),date_sub(now(), interval 1 day);/**
复合型相减
结果为:2016-07-12 14:20:05 , 2015-05-12 14:20:05
其中'1 2'中间的分隔符可为:空格 或者 - 或者 ,
**/
select now(),date_sub(now(), interval '1 2' YEAR_MONTH);
其中type的可选值有:
MICROSECOND
间隔单位:毫秒
SECOND
间隔单位:秒
MINUTE
间隔单位:分钟
HOUR
间隔单位:小时
DAY
间隔单位:天
WEEK
间隔单位:星期
MONTH
间隔单位:月
QUARTER
间隔单位:季度
YEAR
间隔单位:年
SECOND_MICROSECOND
复合型,间隔单位:秒、毫秒,expr可以用两个值来分别指定秒和毫秒
MINUTE_MICROSECOND
复合型,间隔单位:分、毫秒
MINUTE_SECOND
复合型,间隔单位:分、秒
HOUR_MICROSECOND
复合型,间隔单位:小时、毫秒
HOUR_SECOND
复合型,间隔单位:小时、秒
HOUR_MINUTE
复合型,间隔单位:小时分
DAY_MICROSECOND
复合型,间隔单位:天、毫秒
DAY_SECOND
复合型,间隔单位:天、秒
DAY_MINUTE
复合型,间隔单位:天、分
DAY_HOUR
复合型,间隔单位:天、小时
YEAR_MONTH
复合型,间隔单位:年、月
2.3、计算日期/时间的差
计算日期(day)的差:DATEDIFF(expr1,expr2), 结果为:expr1-expr2
select DATEDIFF(now(),date_add(now(), interval 1 day)); ---1
select DATEDIFF(now(),now()); --0
计算时间差:TIMEDIFF(expr1,expr2),结果为:expr1-expr2,格式为: 小时:分:秒
/**
结果为:2016-07-12 14:40:03 2016-07-12 18:00:03 03:20:00
**/
select now(),DATE_ADD(now(),INTERVAL 200 minute),TIMEDIFF(DATE_ADD(now(),INTERVAL 200 minute),now())
计算指定单位的差:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2),其中unit参考上面的type的那个表格,计算过程是:datetime_expr2-datetime_expr1
/**
结果:2016-07-12 14:51:50 2016-07-12 15:51:50 1
**/
select now(),DATE_ADD(now(),INTERVAL 1 hour),TIMESTAMPDIFF(HOUR,now(),DATE_ADD(now(),INTERVAL 1 hour))
mySQL日期函数并运行_mysql日期相关的函数相关推荐
- mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全
Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01 ...
- mysql数据库函数详解_MySQL数据库之字符函数详解
MySQL数据库中的函数根据功能可以划分为字符函数.数值运算符与函数.比较运算符与函数.日期时间函数.信息函数.聚合函数.加密函数以及自定义函数等. 1.CONCAT() CONCAT()函数用于字符 ...
- mysql 函数怎样创建_mysql里怎样创建函数
mysql里创建函数的方法: 一.查看创建函数的功能是否开启: mysql> show variables like '%func%'; +--------------------------- ...
- mysql 截取括号内字符串_Mysql中字符串截取函数
MySQL中字符串的截取 substring_index(str,delim,count) 函数的使用较为普遍 函数括号里面的依次为:要分隔截取的字符串(如:"aaa_bbb_ccc&quo ...
- mysql手动写的时间_Mysql日期和时间函数
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型. 这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: my ...
- mysql 当前日期加3天_MySQL应用总结(十三)—函数的操作(3):日期时间函数
SQL语法预览: 使用函数:[select 函数名(参数1,参数2-);] 详解: 接上期... 四. 日期和时间函数 日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用DATE类型的参数 ...
- mysql对日期做加减_MySQL日期加减函数详解
MySQL日期加减函数详解2020-06-17 15:25:30 1. addtime() 为日期加上指定秒数select addtime(now(),1); -- 加1秒 2. adddate() ...
- mysql 语法 日期转换成字符串_mysql日期转换成字符串的方法
mysql日期转换成字符串的方法 发布时间:2020-04-29 09:41:00 来源:亿速云 阅读:178 作者:小新 今天小编给大家分享的是mysql日期转换成字符串的方法,相信很多人都不太了解 ...
- mysql中字符串转时间戳_MySQL日期 字符串 时间戳互转
mysql时间转换和事务 涉及的函数 date_format(date, format) 函数,MySQL日期格式化函数date_format() unix_timestamp() 函数 str_to ...
最新文章
- 香港理工大学计算机专业课程,香港理工大学 19年入学 计算机硕士信息一览
- windows 10 python哪个版本的好-自学python用什么系统好
- Searchable(搜索功能)(转)
- 解密:依图如何一年实现语音识别指标超巨头玩家
- 一次远程支持事故的教训,与大家分享
- LLVM4更新--简化对象定义
- 秀!微软《550页图解.Net+WPF完整版》.pdf 附下载!
- 分享博文摘要图标【11/16更新】
- Net4.0—VS2010新特性
- 形容时间过得快的句子,一些表示时间过得快的句子
- 原根算法C语言,数据结构与算法分析 C语言描述(第2版)Larry Nyhoff AVL树
- Linux配置Java环境变量 详解
- 华为手机热点无法连接_为什么华为手机开热点别的手机连不上?
- Quartus ii安装及使用实验报告
- 去除控制台的Vue warn警告信息
- php去掉notice错误,学习猿地-php怎么关闭notice级别的错误提示?
- 洛谷p2655 2038年问题 普及/提高- 模拟
- web编程技术的知识点---HTML
- 虚拟机在suspended 状态下无法Resuming ,并出现错误
- 关于赞同科技项目的收获
热门文章
- 国计算机学会聘为全国青少年信,中国计算机学会将继续开展NOI相关活动,暂未作出重新申报的决议...
- java 多线程 总结_Java 多线程总结
- 梦幻,MySQL视图,虚实表,完整详细可收藏
- 《计算机网络自顶向下》知识体系完全梳理
- python string模块template_Python标准库笔记(1) — string模块
- javax.naming.NamingException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
- zabbix3.2监控
- (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联
- Struts2显示double价格格式0.00
- 13个不可不知的ASP.NET MVC扩展点