Mysql日期转换函数、时间转换函数详解编程语言
2,获得当前日期+时间(date + time)函数:sysdate()
sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值;
select sysdate(); 结果:2008-08-08 22:20:46
3,MySQL 获得当前时间戳函数:current_timestamp, current_timestamp():
select current_timestamp, current_timestamp(); 结果:2008-08-09 23:22:24 , 2008-08-09 23:22:24二、MySQL 日期转换函数、时间转换函数
1,MySQL Date/Time to Str(日期/时间转换为字符串)函数:date_format(date,format), time_format(time,format):
函数:date_format(2008-08-08 22:23:01, %Y%m%d%H%i%s) 结果:20080808222301
MySQL 日期、时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式。它是 str_to_date(str,format) 函数的 一个逆转换。
2,MySQL Str to Date (字符串转换为日期)函数:str_to_date(str, format):
select str_to_date(08/09/2008, %m/%d/%Y); -- 2008-08-09 select str_to_date(08/09/08 , %m/%d/%y); -- 2008-08-09 select str_to_date(08.09.2008, %m.%d.%Y); -- 2008-08-09 select str_to_date(08:09:30, %h:%i:%s); -- 08:09:30 select str_to_date(08.09.2008 08:09:30, %m.%d.%Y %h:%i:%s); -- 2008-08-09 08:09:30
str_to_date(str,format) 转换函数,可以把一些杂乱无章的字符串转换为日期格式。
3,MySQL (日期、天数)转换函数:to_days(date), from_days(days):
select to_days(0000-00-00); -- 0 select to_days(2008-08-08); -- 733627
4,MySQL (时间、秒)转换函数:time_to_sec(time), sec_to_time(seconds):
select time_to_sec(01:00:05); -- 3605 select sec_to_time(3605); -- 01:00:05
5,MySQL 拼凑日期、时间函数: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
6,MySQL (Unix 时间戳、日期)转换函数:
unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp,format)三、MySQL 日期时间计算函数
1,MySQL 为日期增加一个时间间隔:date_add():
set @dt = now(); select date_add(@dt, interval 1 day); -- add 1 day select date_add(@dt, interval 1 hour); -- add 1 hour select date_add(@dt, interval 1 minute); -- ... select date_add(@dt, interval 1 second); 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); -- sub 1 day
2,MySQL adddate(), addtime()函数(可以用 date_add() 来替代):
set @dt = 2008-08-09 12:12:33; select date_add(@dt, interval 01:15:30 hour_second); 结果:2008-08-09 13:28:03 select date_add(@dt, interval 1 01:15:30 day_second); 结果:2008-08-10 13:28:03
3,MySQL 为日期减去一个时间间隔:date_sub():
select date_sub(1998-01-01 00:00:00, interval 1 1:1:1 day_second); 结果:1997-12-30 22:58:59
4,MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2):
MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数。 select datediff(2008-08-08, 2008-08-01); -- 7 select datediff(2008-08-01, 2008-08-08); -- -7
5,MySQL timediff(time1,time2):两个日期相减 time1 time2,返回 time 差值:
select timediff(2008-08-08 08:08:08, 2008-08-08 00:00:00); -- 08:08:08 select timediff(08:08:08, 00:00:00); -- 08:08:08 注意:timediff(time1,time2) 函数的两个参数类型必须相同。
6,MySQL 时间戳(timestamp)转换、增、减函数:
timestamp(date) -- date to timestamp timestamp(dt,time) -- dt + time timestampadd(unit,interval,datetime_expr) timestampdiff(unit,datetime_expr1,datetime_expr2) select timestamp(2008-08-08); -- 2008-08-08 00:00:00 select timestamp(2008-08-08 08:00:00, 01:01:01); -- 2008-08-08 09:01:01 select timestamp(2008-08-08 08:00:00, 10 01:01:01); -- 2008-08-18 09:01:01 select timestampadd(day, 1, 2008-08-08 08:00:00); -- 2008-08-09 08:00:00 select date_add(2008-08-08 08:00:00, interval 1 day); -- 2008-08-09 08:00:00 MySQL timestampadd() 函数类似于 date_add()。 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(2008-08-08 12:00:00, 2008-08-01 00:00:00); -- 7
MySQL timestampdiff() 函数就比 datediff() 功能强多了,datediff() 只能计算两个日期(date)之间相差的天数。
四、MySQL 时区(timezone)转换函数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
时区转换也可以通过 date_add, date_sub, timestampadd 来实现:
select date_add(2008-08-08 12:00:00, interval -8 hour); -- 2008-08-08 04:00:00 select date_sub(2008-08-08 12:00:00, interval 8 hour); -- 2008-08-08 04:00:00 select timestampadd(hour, -8, 2008-08-08 12:00:00); -- 2008-08-08 04:00:00
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16805.html
cjavamysql相关文章
- 类型MySQL中的日期类型及其应用(mysql日期整数)
- MySQL实现中文拼音转换(mysql获取拼音)
- MySQL:将日期格式转换为毫秒(mysql日期转换毫秒)
- 转换MySQL字符串大小写转换实现方法(mysql字符串大小写)
- MySQL中实现秒转换为时间的方法(mysql秒转时间)
- MySQL日期加减的实现方法(mysql日期加减)
- MySQL 改变之路: 从非UTF8到UTF8(mysql改为utf8)
- MySQL: 转换为崭新的时刻(mysql转换为时间)
- MySQL中轻松转换时间戳的函数(mysql时间戳转换函数)
- MySQL中实现字符串转换的方法(mysql字符串转换)
- MySQL 日期计算:计算年龄(mysql日期计算年龄)
- MySQL数据库:构建功能强大的数据库系统(mysql数据库的设计)
- MySQL数据类型转换:从Time到INT(mysql时间转换int)
- MySQL中如何更改默认日期格式(Mysql日期默认格式)
- MySQL查询如何获取日期的年份(mysql获取日期年份)
- 使用MySQL查询特定日期数据的方法(mysql查找某一天)
- MySQL中快速查询时间范围内的数据(mysql日期范围查询)
- MySQL数据库中的日期格式研究(mysql数据库日期格式)
- mysql 无缝集成Redis实现与MySQL完美无缝整合(redis实现与)
- MySQL数据库更新:极致性能,高效支持(mysql更新内容)
- MySQL视频学习,云端存储更便捷(mysql视频云盘)
- MySQL 解决日期处理难题(mysql处理日期)
- 最小MySQL中查询获取日期最大最小值的方法(mysql 日期最大)
- MySQL如何处理重复执行的命令(mysql重复执行)
- 轻松转换:从Oracle到MySQL的简易工具(oracle转mysql工具)
- MySQL中前导列的定义及使用方法(mysql中什么是前导列)
- MySQL中使用now函数获取当前时间(mysql中now()-)
- MySQL中INT类型的位数限制(mysql中int位数)
- MySQL中日期比较的方法和技巧(mysql中date比较)
- MySQL存储引擎了解常见的五种引擎及其特点(mysql个存储引擎)
- MySQL 数据库追加操作实现(append mysql)
- 探秘MySQL数据库存储一亿数据的秘密(mysql一亿的数据库)
- MySQL服务不停,如何进行扩容(mysql 不停服务扩容)
- 如何在MySQL中计算两个日期之间的天数(mysql两日期中间)
- MySQL下载与安装指南(mysql下载与安装包)