mysql之日期函数
写在前面
mysql的学习,断断续续,今天就接着学习mysql的日期操作吧。
系列文章
mysql之select,insert,delete,update
mysql之count,max,min,sum,avg,celing,floor
Mysql实战
1、获得当前时间格式yyyy-MM-dd HH:mm:ss
select now();
结果
另外一个获取当前时间的函数是:sysdate();
区别:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。
select sysdate(),sleep(3),now();

不过在实际中,sysdate()函数很少用。
2、通过时间戳函数也可以获取当前时间
select current_timestamp(),current_timestamp;

3、获取日期,年月日秒
select date('2015-06-27 08:33:32'),year('2015-06-27 08:33:32'),month('2015-06-27 08:33:32'),day('2015-06-27 08:33:32'),time('2015-06-27 08:33:32'),second('2015-06-27 08:33:32');

4、日期格式化函数
date_format(date,format), time_format(time,format)
select date_format('2015-08-08 22:23:01', '%Y%m%d%H%i%s');

日期、时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式。它是 str_to_date(str,format) 函数的 一个逆转换。
select str_to_date('08/08/2015','%m/%d/%Y');

select str_to_date('08/08/15','%m/%d/%Y');

select str_to_date('08.08.15','%m.%d.%Y');

select str_to_date('08:09:30','%h:%i:%s');

select str_to_date('08.09.2015 08:09:30', '%m.%d.%Y %h:%i:%s');

5、(日期、天数)转换函数:to_days(date), from_days(days)
select to_days('2015-06-25');

select from_days('');

当然,有对日期,天数的操作,也有对年,月,日,时,分,秒的操作,这些等待你去发现。
select time_to_sec('01:00:05'); --
select sec_to_time(3605); -- '01:00:05'


拼凑日期、时间函数:makdedate(year,dayofyear), maketime(hour,minute,second)
select makedate(2001,31); -- '2001-01-31'
select makedate(2001,32); -- '2001-02-01'
select maketime(12,15,30); -- '12:15:30'
(Unix 时间戳、日期)转换函数
select unix_timestamp(); --
select unix_timestamp('2015-08-08 12:30:00'); -- '1439008200'
select from_unixtime('');
select from_unixtime(1218124800); -- '2015-06-27 10:24:59.000000'
select from_unixtime('');-- '2015-08-08 12:30:00.000000'
select from_unixtime(1435371899, '%Y %D %M %h:%i:%s %x'); -- '2015 27th June 10:24:59 2015'
6、日期时间计算函数
set @dt=now();
select date_add(@dt, interval 1 day); -- '2015-06-28 10:30:38' 加一天
select date_add(@dt, interval 1 hour); -- '2015-06-27 11:32:10' 加一小时
select date_add(@dt, interval 1 minute); -- '2015-06-27 10:33:33'
select date_add(@dt, interval 1 second); -- '2015-06-27 10:33:34'
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);
select date_add(@dt, interval -1 day);减一天
adddate(), addtime()函数,可以用 date_add() 来替代。
set @dt = '2015-08-09 12:12:33';
select date_add(@dt,interval '01:15:30' hour_second);

从结果,更容易理解,在小时和秒上加上你设置的时间的小时和秒。
set @dt = '2015-08-09 12:12:33';
select date_add(@dt,interval '2 01:15:30' day_second);

减去一个时间
set @dt = '2015-08-09 12:12:33';
select date_sub(@dt,interval '2 01:15:30' day_second);

日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)
set @dt = '2015-08-09 12:12:33';
set @now=now();
select datediff(@now,@dt); -- -43
set @dt = '2015-08-09 12:12:33';
set @now=now();
select timediff(@now,@dt);

注意:timediff(time1,time2) 函数的两个参数类型必须相同,要么都是yyyy-MM-dd HH:mm:ss要么都是HH:mm:ss.
时间戳(timestamp)转换、增、减函数:
timestamp(date) -- date to timestamp
timestamp(dt,time) -- dt + time
timestampadd(unit,interval,datetime_expr)
timestampdiff(unit,datetime_expr1,datetime_expr2)
select timestamp('2015-08-08'); -- 2015-08-08 00:00:00
select timestamp('2015-08-08 08:00:00', '01:01:01'); -- 2015-08-08 09:01:01
select timestamp('2015-08-08 08:00:00', '10 01:01:01'); -- 2015-08-18 09:01:01
select timestampadd(day, 1, '2015-08-08 08:00:00'); -- 2015-08-09 08:00:00
select date_add('2015-08-08 08:00:00', interval 1 day); -- 2015-08-09 08:00:00
select timestampdiff(year,'2002-05-01','2001-01-01'); -- -1
select timestampdiff(day ,'2002-05-01','2001-01-01'); -- -485
select timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00'); -- -12
select datediff('2015-08-08 12:00:00', '2015-08-01 00:00:00'); --
7、时区转换函数
convert_tz(dt,from_tz,to_tz)
select convert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-08 04:00:00
总结
这里简单介绍了,经常用到的时间操作的函数,当然,还有很多没有顾及到,这只能在以后在实际中,慢慢去发现了。
参考文章
http://www.cnblogs.com/ggjucheng/p/3352280.html
mysql之日期函数的更多相关文章
- MySQL:日期函数、时间函数总结(MySQL 5.X)
http://www.cnblogs.com/she27/archive/2009/01/16/1377089.html 原文:http://www.51sdj.com/phpcms/picture/ ...
- 【转】MySQL:日期函数、时间函数总结(MySQL 5.X)
转自:http://www.cnblogs.com/she27/articles/1377089.html 一.MySQL 获得当前日期时间 函数1.1 获得当前日期+时间(date + time)函 ...
- MySQL中日期函数的使用
1. MySQL中日期函数的使用 1.1. 转DATETIME类型为Date类型 将add_time ::56转化为date类型 select * from product where Date(ad ...
- MySQL:日期函数、时间函数总结
MySQL 获得当前日期时间 函数 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | n ...
- MySQL:日期函数、时间函数处理(转)
date_add() 增加MYSQL 获取当前时间加上一个月 ; date_sub()减少 date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day ...
- Mysql 时间日期函数运用与总结
Mysql 中的时间与日期常常会用到,但是每次都得找,这里结合工作日常总结一下. |--获取当前时间[正常时间] 1. MySQL 获得当前时间函数:current_timestamp, curren ...
- MySql常用日期函数(转载)
/*date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算. date 是一个 datetime 或date ...
- mysql时间日期函数总结(转)
DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03'); ...
- mysql的日期函数介绍
仅供参考 DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03 ...
随机推荐
- Linux设置运行core dump
系统配置vim /etc/sysctl.conf kernel.core_uses_pid = kernel.core_pattern = %e-core-%p-%t sysctl -p检查有没有生效 ...
- 【精彩回顾】第二届微医前端技术沙龙(附PPT下载)
5 月 25 日,以「无界」为主题的第二届微医前端技术沙龙成功举办.本届沙龙的演讲题目涵盖了前端技术几个主要的应用场景,包括服务端.桌面端以及跨平台的开发.最近几年前端技术发展非常快,各种可以提高开发 ...
- 如何将int转换为datetime?
$timestamp = 1210003200; $datetime = date('Y-m-d H:i:s', $timestamp); echo "该时间戳代表的时间:", $ ...
- 成都大学CTF 网络攻防演练平台 WP
web1 输入框那里鼠标右键,审查元素,删除maxlength web2 http://ctf.cdusec.org:8082/web2/?cdusec=tql web3 同上,用火狐hackbar或 ...
- Python-S9—Day85-ORM项目实战之forms组件以及Modelform补充、跨域请求及应用
01 forms组件补充1 02 forms组件补充2 03 ModelForm回顾 04 浏览器的历史 05 jsonop实现跨域请求 06 jsonop实现跨域请求2 07 jsonop实现跨域请 ...
- 删除 node 【笔记】
sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receip ...
- Spring 简单而强大的事务管理功能
开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...
- 第一个Maven案例Hello Maven
Maven目录结构 src:程序源代码 -main -java:java代码 -package:自定义的包 ...
- 【bzoj3944/bzoj4805】Sum/欧拉函数求和 杜教筛
bzoj3944 题目描述 输入 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 输出 一共T行,每行两个用空格分隔的数ans1,ans2 样例输 ...
- 逆向中静态分析工具——IDA初学者笔记
逆向中静态分析工具——IDA初学者笔记 //****************************************************************************** ...