MYSQL日期时间+时间戳+格式转换

来源:互联网 发布:会计办公软件 编辑:程序博客网 时间:2024/05/16 17:33

MYSQL日期时间+时间戳+格式转换

//---------日期|时间|小时|分钟|秒钟|毫秒---------//

set @dt '2011-04-13 17:34:40.123456';

select date(@dt);           --2011-04-13

select time(@dt);       --17:34:40.123456

select year(@dt);           --2011

select quarter(@dt);       --2(季节)

select month(@dt);        --4

select week(@dt);         --15;

select day(@dt);            --13

select hour(@dt);          --17

select minute(@dt);              --24

select second(@dt);              --40

select microsecond(@dt);--123456

 

//---------星期|月份|天数---------//

set @dt '2011-4-13';

select weekday(@dt);           --2(星期三)

select dayofweek(@dt);        --4(星期三)

select dayofmonth(@dt);       --13

select dayofyear(@dt);              --103

select week(@dt);                --15(第15周)

select yearweek(@dt);          --201115

select dayname(@dt);           --Wednesday

select monthname(@dt);              --April

select last_day('2011-4-13');  --2011-04-30

select last_day('2011-8-13');  --2011-04-31

 

//---------日期函数(加减|格式转换)-----------//

set @dt '2011-04-13 16:43:53';

select date_add(@dt, interval day);                  --2011-04-14 16:43:53

select date_add(@dt, interval hour);                 --2011-04-13 17:43:53

select date_add(@dt, interval minute);              --2011-04-13 16:44:53

select date_add(@dt, interval second);             --2011-04-13 16:43:54

select date_add(@dt, interval microsecond);     --2011-04-13 16:43:53.000001

select date_add(@dt, interval week);                --2011-04-20 16:43:53

select date_add(@dt, interval month);                     --2011-05-13 16:43:53

select date_add(@dt, interval quarter);             --2011-07-13 16:43:53(季节)

select date_add(@dt, interval year);                 -2012-04-13 16:43:53

select date_add(@dt, interval -1 day);                 --2011-04-12 16:43:53

select date_add(@dt, interval '01:2:3' hour_second);    --2011-04-13 17:45:56

select date_add(@dt, interval '1 01:2:3' day_second);  --2011-04-14 17:45:56

 

select date_sub('2011-01-01 00:00:00', interval '1 1:1:1' day_second);       --2010-12-30 22:58:59

select period_add(201104,2), period_add(20110404,-2);                   --201106,20110402

select period_diff(201104, 201101);                                  --3

select period_diff(201101, 201104);                                  -- -3

select datediff('2011-04-04', '2011-04-01');                       --3

select datediff('2011-04-01', '2011-04-04');                       --3

select timediff('2011-04-13 16:43:53', '2011-04-13 14:10:10');           --02:33:43

格式转换

select time_to_sec('01:10:05');                           --4205

select sec_to_time(4205);                                  --01:10:05

select to_days('2011-4-13');                               --734605

select from_days(734605);                                --2011-04-13

select str_to_date('04/13/2011','%m/%d/%Y');    --2011-04-13

select str_to_date('04/13/11','%m/%d/%y');        --2011-04-13

select str_to_date('04.13.2011','%m.%d.%Y');    -2011-04-13

select str_to_date('17:19:30','%H:%i:%s');           --17:19:30

select str_to_date('04.13.2011 18:19:10', '%m.%d.%Y %H:%i:%s');   --2011-04-13 18:19:10

select date_format('2011-04-13 17:30:10', '%W %M %Y');        -Wednesday April 2011

select date_format('2011-04-13 18:13:11', '%Y%m%d%H%i%s');     --20110413181311

select time_format('18:13:20', '%H.%i.%s');               --18.13.20

日期连接

select makedate(2001,31);     --2001-01-31

select makedate(2011,32);     --2011-02-01

select maketime(17,10,40);    --17:10:40

时间戳

select unix_timestamp();                            --1302686393

select unix_timestamp('2011-4-1');              --1301587200

select unix_timestamp('2011-4-1 0:00:02');          --1301590802

select from_unixtime(1302686393);                   --2011-04-13 17:19:53

select from_unixtime(1302686393,'%Y %D %M %H:%i:%s %x');--2011 13th April 17:19:53 2011

select timestamp('2011-4-1');                             --2011-04-01 00:00:00

select timestamp('2011-4-1 17:19:53', '01:01:01');       --2011-04-01 18:20:54

select timestamp('2011-4-1 17:19:53', '10 01:01:01');   --2011-04-11 18:20:54

select timestampadd(day,1,'2011-4-1 18:10:00');         --2011-04-02 18:10:00

select date_add('2011-4-1 18:10:00', interval day);    --2011-04-02 18:10:00

时间相差比datediff()函数更精确

select timestampdiff(year,'2011-04-01','2010-01-01');  -- -1

select timestampdiff(day ,'2011-04-01','2010-01-01'); -- -455

select timestampdiff(hour,'2011-04-01 13:00:00','2011-04-01 00:00:01');   -- -12

select datediff('2011-04-01 13:00:00', '2011-02-01 10:00:00');    --59(只统计相差的天数)

时区转换

select convert_tz('2011-04-13 17:00:00', '+08:00', '+00:00');             --2011-04-13 09:00:00

当然也可以使用上面介绍的

select date_add('2011-04-13 17:00:00', interval -8 hour);     --2011-04-13 09:00:00

select date_sub('2011-04-13 17:00:00', interval  hour);   --2011-04-13 09:00:00

select timestampadd(hour, -8, '2011-04-13 17:00:00');        --2011-04-13 09:00:00

原创粉丝点击