MySQL获得当前日期时间函数示例详解
获得当前日期+时间(date+time)函数:now()
mysql>selectnow(); +---------------------+ |now()| +---------------------+ |2008-08-0822:20:46| +---------------------+
获得当前日期+时间(date+time)函数:sysdate()
sysdate()日期时间函数跟now()类似,不同之处在于:now()在执行开始时值就得到了,sysdate()在函数执行时动态得到值。看下面的例子就明白了:
mysql>selectnow(),sleep(3),now(); +---------------------+----------+---------------------+ |now()|sleep(3)|now()| +---------------------+----------+---------------------+ |2008-08-0822:28:21|0|2008-08-0822:28:21| +---------------------+----------+---------------------+
sysdate()日期时间函数,一般情况下很少用到。
MySQL获得当前时间戳函数:current_timestamp,current_timestamp()
mysql>selectcurrent_timestamp,current_timestamp(); +---------------------+---------------------+ |current_timestamp|current_timestamp()| +---------------------+---------------------+ |2008-08-0923:22:24|2008-08-0923:22:24| +---------------------+---------------------+
MySQL日期转换函数、时间转换函数
MySQLDate/TimetoStr(日期/时间转换为字符串)函数:date_format(date,format),time_format(time,format)
mysql>selectdate_format('2008-08-0822:23:01','%Y%m%d%H%i%s'); +----------------------------------------------------+ |date_format('2008-08-0822:23:01','%Y%m%d%H%i%s')| +----------------------------------------------------+ |20080808222301| +----------------------------------------------------+
MySQL日期、时间转换函数:date_format(date,format),time_format(time,format)能够把一个日期/时间转换成各种各样的字符串格式。它是str_to_date(str,format)函数的一个逆转换。
MySQLStrtoDate(字符串转换为日期)函数:str_to_date(str,format)
selectstr_to_date('08/09/2008','%m/%d/%Y');--2008-08-09 selectstr_to_date('08/09/08','%m/%d/%y');--2008-08-09 selectstr_to_date('08.09.2008','%m.%d.%Y');--2008-08-09 selectstr_to_date('08:09:30','%h:%i:%s');--08:09:30 selectstr_to_date('08.09.200808:09:30','%m.%d.%Y%h:%i:%s');--2008-08-0908:09:30
可以看到,str_to_date(str,format)转换函数,可以把一些杂乱无章的字符串转换为日期格式。另外,它也可以转换为时间。“format”可以参看MySQL手册。
MySQL(日期、天数)转换函数:to_days(date),from_days(days)
selectto_days('0000-00-00');--0 selectto_days('2008-08-08');--733627
MySQL(时间、秒)转换函数:time_to_sec(time),sec_to_time(seconds)
selecttime_to_sec('01:00:05');--3605 selectsec_to_time(3605);--'01:00:05'
MySQL拼凑日期、时间函数:makdedate(year,dayofyear),maketime(hour,minute,second)
selectmakedate(2001,31);--'2001-01-31' selectmakedate(2001,32);--'2001-02-01' selectmaketime(12,15,30);--'12:15:30'
MySQL(Unix时间戳、日期)转换函数
unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp,format)
下面是示例:
selectunix_timestamp();--1218290027 selectunix_timestamp('2008-08-08');--1218124800 selectunix_timestamp('2008-08-0812:30:00');--1218169800 selectfrom_unixtime(1218290027);--'2008-08-0921:53:47' selectfrom_unixtime(1218124800);--'2008-08-0800:00:00' selectfrom_unixtime(1218169800);--'2008-08-0812:30:00' selectfrom_unixtime(1218169800,'%Y%D%M%h:%i:%s%x');--'20088thAugust12:30:002008'
MySQL日期时间计算函数
MySQL为日期增加一个时间间隔:date_add()
set@dt=now(); selectdate_add(@dt,interval1day);--add1day selectdate_add(@dt,interval1hour);--add1hour selectdate_add(@dt,interval1minute);--... selectdate_add(@dt,interval1second); selectdate_add(@dt,interval1microsecond); selectdate_add(@dt,interval1week); selectdate_add(@dt,interval1month); selectdate_add(@dt,interval1quarter); selectdate_add(@dt,interval1year); selectdate_add(@dt,interval-1day);--sub1day
MySQLadddate(),addtime()函数,可以用date_add()来替代。下面是date_add()实现addtime()功能示例:
mysql>set@dt='2008-08-0912:12:33'; mysql> mysql>selectdate_add(@dt,interval'01:15:30'hour_second); +------------------------------------------------+ |date_add(@dt,interval'01:15:30'hour_second)| +------------------------------------------------+ |2008-08-0913:28:03| +------------------------------------------------+ mysql>selectdate_add(@dt,interval'101:15:30'day_second); +-------------------------------------------------+ |date_add(@dt,interval'101:15:30'day_second)| +-------------------------------------------------+ |2008-08-1013:28:03| +-------------------------------------------------+
MySQL为日期减去一个时间间隔:date_sub()
mysql>selectdate_sub('1998-01-0100:00:00',interval'11:1:1'day_second); +----------------------------------------------------------------+ |date_sub('1998-01-0100:00:00',interval'11:1:1'day_second)| +----------------------------------------------------------------+ |1997-12-3022:58:59| +----------------------------------------------------------------+
MySQLdate_sub()日期时间函数和date_add()用法一致,不再赘述。
MySQL日期、时间相减函数:datediff(date1,date2),timediff(time1,time2)
MySQLdatediff(date1,date2):两个日期相减date1-date2,返回天数。 selectdatediff('2008-08-08','2008-08-01');--7 selectdatediff('2008-08-01','2008-08-08');---7
MySQLtimediff(time1,time2):两个日期相减time1-time2,返回time差值。
selecttimediff('2008-08-0808:08:08','2008-08-0800:00:00');--08:08:08 selecttimediff('08:08:08','00:00:00');--08:08:08
注意:timediff(time1,time2)函数的两个参数类型必须相同。
MySQL时间戳(timestamp)转换、增、减函数:
timestamp(date)--datetotimestamp timestamp(dt,time)--dt+time timestampadd(unit,interval,datetime_expr)-- timestampdiff(unit,datetime_expr1,datetime_expr2)--
请看示例部分:
selecttimestamp('2008-08-08');--2008-08-0800:00:00 selecttimestamp('2008-08-0808:00:00','01:01:01');--2008-08-0809:01:01 selecttimestamp('2008-08-0808:00:00','1001:01:01');--2008-08-1809:01:01 selecttimestampadd(day,1,'2008-08-0808:00:00');--2008-08-0908:00:00 selectdate_add('2008-08-0808:00:00',interval1day);--2008-08-0908:00:00 MySQLtimestampadd()函数类似于date_add()。 selecttimestampdiff(year,'2002-05-01','2001-01-01');---1 selecttimestampdiff(day,'2002-05-01','2001-01-01');---485 selecttimestampdiff(hour,'2008-08-0812:00:00','2008-08-0800:00:00');---12 selectdatediff('2008-08-0812:00:00','2008-08-0100:00:00');--7
MySQLtimestampdiff()函数就比datediff()功能强多了,datediff()只能计算两个日期(date)之间相差的天数。
MySQL时区(timezone)转换函数
convert_tz(dt,from_tz,to_tz) selectconvert_tz('2008-08-0812:00:00','+08:00','+00:00');--2008-08-0804:00:00
时区转换也可以通过date_add,date_sub,timestampadd来实现。
selectdate_add('2008-08-0812:00:00',interval-8hour);--2008-08-0804:00:00 selectdate_sub('2008-08-0812:00:00',interval8hour);--2008-08-0804:00:00 selecttimestampadd(hour,-8,'2008-08-0812:00:00');--2008-08-0804:00:00
更多参考:https://www.nhooo.com/article/201868.htm
到此这篇关于MySQL获得当前日期时间函数的文章就介绍到这了,更多相关MySQL获得当前日期时间函数内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。