Mysql日期转换函数、时间转换函数
另一方面,MySQL获得当前日期和时间函数
1 )获取当前日期和时间(date time )函数) now ) :
选择now (;
结果: 2008-08-08 22:20:46
2 )获取当前日期和时间(date time )函数: sysdate ) ) ) ) )。
与sysdate (日期和时间函数为now )类似,不同之处在于now )在执行开始时获得值,而sysdate )在函数执行时动态获得值。
选择系统(;
结果: 2008-08-08 22:20:46
3、MySQL获取当前时间戳函数。 current_timestamp,current_timestamp (
select current_timestamp,current_timestamp (;
结果: 2008-08-092:22336024、2008-08-092:22336024
二. MySQL日期转换函数、时间转换函数
1、MySQL Date/Time to Str (将日期/时间转换为字符串)函数: date _ format (date,format )、time _ format (time,format ) :
函数: date _ format (2008-08-082233602336001 )、(%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 ) :
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
select str _ to _ date ((08336009336030 )、(%h:%i:%s ) ); --08:09:30
select str _ to _ date (08.09.200808336009336030 )、(%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 ) :
选择to _ days (0000-00-00 ); -0
选择to _ days (2008-08-08 ); --733627
4、MySQL (时间,秒)转换函数: time _ to _ sec (time )、sec _ to _ time (seconds ) :
select time _ to _ sec (01:00336005 ); --3605
selectsec_to_time(3605; --'01:00:05 "
5、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 '
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 (; 选择date _ add (@ dt,interval 1 day; --add 1天
slectdate_add(@dt,interval 1 hour; --add 1 hour
选择date _ add (@ dt,interval 1 minute; -- .
选择date _ add (@ dt,interval 1second; slectdate_add(@dt,interval 1microsecond; slectdate_add(@dt,interval 1week ); slectdate_add(@dt,interval 1 month; selectdate_add(@dt,interval 1quarter ); slectdate_add(@dt,interval 1 year; 选择date _ add (@ dt,interval -1 day; - -子1天
2、可以用MySQL adddate (,addtime ) (函数) date_add ()代替) :
set @ dt=' 2008-08-0912:12336033 '; selectdate_add(@dt,interval ' 01336015336030 ' hour _ second );
结果: 2008-08-09 13:28:03
selectdate_add(@dt,interval ' 101336015336030 ' day _ second );
结果: 2008-08-10 13:28:03
3、MySQL是日期减去时间间隔后的结果。 date_sub (:
选择date _ sub (1998-01-010033600336000 (,interval ) 1133601:1 ) day_second );
结果: 1997-12-30 22:58:59
4、MySQL日期,时间相减函数: datediff(date1,date2 ),timediff (time 2,time2) :
MySQLdatediff(date1,date2 ) :从两个日期中减去date1 -date2,返回天数。 选择数据(2008-08-01,) 2008-08-01; -7
选择数据(2008-08-08、2008-08-08 ); ---7
5、MySQLtimediff(time1,time2) :从两个日期中减去time1 - time2,返回time之差。
选择时间(2008-08-0808336008336008 (,2008-08-08 00:00:00 ); --08:08:08
选择时间(08336008336008、00:00 ); --08:08:08
注意: timediff(time1、time2)函数的两个参数类型必须相同。
6、MySQL时间戳(timestamp )转换、增量、减量函数:
timestamp----datetotimestamp
timestamp(dt,time )--dt time
timestampadd(unit,interval,datetime_expr ) )。
timestampdiff(unit,datetime_expr1,datetime_expr2) selecttimestamp('2008-08-08 ' ); -2008-08-0800336000336000
选择时间(2008-08-0808336000336000 )、) 01:01:01; --2008-08 09:01:01
选择时间(2008-08-080833600336000 (,10 01:01:01 ); --2008-08-18 09:01:01
selecttimestampadd(day,1,' 2008-08-08 08:00:00 ' ); --2008-08-09 08:00:00
select date _ add (2008-08-080833600336000 )、interval 1 day ); --2008-08-09 08:00:00
与MySQL timestampadd (函数为date_add )类似。 selecttimestampdiff(year,' 2002-05-01 ',' 2001-01-01 ' ); ---1
selecttimestampdiff(day,' 2002-05-01 ',' 2001-01-01 ' ); ---485
selecttimestampdiff(hour,' 2008-08-08 12:00:00 ',' 2008-08-00336000:00 ' ); ---12
选择数据(2008-08-081233600336000 (,2008-08-01 00:00:00 ) ); -7
比MySQL timestampdiff (函数为datediff )功能强大得多,datediff )只能计算两个日期(date )之间的差值天数。
四. MySQL时区转换函数
convert_tz(dt,from_tz,to_tz ) select convert _ tz (2008-08-0812336000336000 )、08:00 )、003333333333333330
也可以通过date_add、date_sub和timestampadd实现时区转换。
选择数据_ add (2008-08-081233600336000 )、interval -8 hour ); -2008-08-0804336000336000
选择数据_ sub (2008-08-081233600336000 )、interval 8 hour ); -2008-08-0804336000336000
selecttimestampadd(hour,-8,' 2008-08-081233600336000 ' ); -2008-08-0804336000336000