MySQL日期时间函数大全
来源:互联网 发布:佛伊泰克 知乎 编辑:程序博客网 时间:2024/06/09 17:21
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)
mysql> select DAYOFWEEK('2017-10-01');
-> 1
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
mysql> select WEEKDAY('2017-10-01 22:23:00');
-> 6
mysql> select WEEKDAY('2017-10-02');
-> 0
返回date是一月中的第几日(在1到31范围内)
mysql>select DAYOFMONTH('2017-10-08'); ;
-> 3
返回date是一年中的第几日(在1到366范围内)
mysql> select DAYOFYEAR('2017-10-08');
-> 34
返回date中的月份数值
mysql> select MONTH('2017-10-08');
-> 2
返回date是星期几(按英文名返回)
mysql> select DAYNAME("2017-10-08");
-> 'Sunday'
返回date是几月(按英文名返回)
mysql> select MONTHNAME("2017-10-08");
-> 'October'
返回date是一年的第几个季度
mysql> select QUARTER('89-11-04');
-> 4
返回date是一年的第几周(first默认值0,first取值1表示周一是周的开始,0从周日开始) >2017-10-08 周日
mysql> select WEEK('2017-10-08');
-> 41
mysql> select WEEK('2017-10-08',0);
-> 41
mysql> select WEEK('2017-10-08',1);
-> 40
返回date的年份(范围在1000到9999)
mysql> select YEAR('17-10-08');
-> 2017
返回time的小时数(范围是0到23)
mysql> select HOUR('10:06:08');
-> 10
返回time的分钟数(范围是0到59)
mysql> select MINUTE('89-11-04 10:06:08');
-> 6
返回time的秒数(范围是0到59)
mysql> select SECOND('10:06:08');
-> 8
增加N个月到时期P并返回(P的格式YYMM或YYYYMM)
mysql> select PERIOD_ADD(8911,2);
-> 199001
返回在时期P1和P2之间月数(P1和P2的格式YYMM或YYYYMM)
mysql> select PERIOD_DIFF(201710,201706);
-> 4
DATE_SUB(date,INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type)
对日期时间进行加减法运算
(ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词,也可以用运算符 和-而不是函数
date是一个DATETIME或DATE值,
expr对date进行加减法的一个表达式字符串,
type指明表达式expr应该如何被解释,
[type值 含义 期望的expr格式]:
如果type关键词不完整,则MySQL从右端取值,DAY_SECOND因为缺少小时分钟等于MINUTE_SECOND)
如果增加MONTH、YEAR_MONTH或YEAR,天数大于结果月份的最大天数则使用最大天数)
-> 1998-01-01 00:00:00
mysql> SELECT INTERVAL 1 DAY "1997-12-31";
-> 1998-01-01
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
-> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY);
-> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);
-> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR);
-> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997-12-02
TO_DAYS(date)
返回日期date是西元0年至今多少天(不计算1582年以前)
mysql> select TO_DAYS(950501);
-> 728779
mysql> select TO_DAYS('1997-10-07');
-> 729669
给出西元0年至今多少天返回DATE值(不计算1582年以前)
mysql> select FROM_DAYS(729669);
-> '1997-10-07'
CURDATE() 或者 CURRENT_DATE()
以'YYYY-MM-DD'或YYYYMMDD格式返回当前日期值(根据返回值所处上下文是字符串或数字)
mysql> select CURDATE();
-> '1997-12-15'
mysql> select CURDATE() ;
->'1997-12-15'
CURTIME() 或者 CURRENT_TIME()
以'HH:MM:SS'或HHMMSS格式返回当前时间值(根据返回值所处上下文是字符串或数字)
mysql> select CURTIME();
-> '16:55:06'
mysql> select CURTIME() ;
-> ‘16:55:06’
NOW() 、SYSDATE()、 CURRENT_TIMESTAMP()
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前日期时间(根据返回值所处上下文是字符串或数字)
mysql> select NOW();
-> '2017-09-25 16:56:21'
mysql> select SYSDATE();
->'2017-09-25 16:56:21'
mysql> select SYSDATE();
->'2017-09-25 16:56:21'
UNIX_TIMESTAMP() 或者UNIX_TIMESTAMP(date)
返回一个Unix时间戳(从'1970-01-01 00:00:00'GMT开始的秒数,date默认值为当前时间)
mysql> select UNIX_TIMESTAMP();
-> 1506330015
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875974980
FROM_UNIXTIME(unix_timestamp)
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回时间戳的值(根据返回值所处上下文是字符串或数字)
mysql> select FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> select FROM_UNIXTIME(875996580) 0;
-> 19971004222300
FROM_UNIXTIME(unix_timestamp,format)
以format字符串格式返回时间戳的值
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
-> '1997 23rd December 03:43:30 x'
SEC_TO_TIME(seconds)
以'HH:MM:SS'或HHMMSS格式返回秒数转成的TIME值(根据返回值所处上下文是字符串或数字)
mysql> select SEC_TO_TIME(2378);
-> '00:39:38'
mysql> select SEC_TO_TIME(2378) 0;
-> 3938
TIME_TO_SEC(time)
返回time值有多少秒
mysql> select TIME_TO_SEC('22:23:00');
-> 80580
mysql> select TIME_TO_SEC('00:39:38');
-> 2378
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法
DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
可以使用的格式有:
下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')DATE_FORMAT(NOW(),'%m-%d-%Y')DATE_FORMAT(NOW(),'%d %b %y')DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
结果类似:
Dec 29 2008 11:45 PM12-29-200829 Dec 0829 Dec 2008 16:25:46.635
TIME_FORMAT(time,format) 和 DATE_FORMAT() 类似,但TIME_FORMAT只处理小时、分钟和秒(其余符号产生一个NULL值或0)
Value Description
%f is available starting in MySQL 4.1.1%HHour (00 to 23 generally, but can be higher)%hHour (00 to 12)%IHour (00 to 12)%iMinutes (00 to 59)%pAM or PM%rTime in 12 hour AM or PM format (hh:mm:ss AM/PM)%SSeconds (00 to 59)%sSeconds (00 to 59)%TTime in 24 hour format (hh:mm:ss)
mysql> SELECT TIME_FORMAT('15:02:28', '%H %i %s');Result: '15 02 28'mysql> SELECT TIME_FORMAT('15:02:28', '%h:%i:%s %p');Result: '03:02:28 PM'mysql> SELECT TIME_FORMAT('15:02:28', '%h:%i%p');Result: '03:02PM'mysql> SELECT TIME_FORMAT('17:42:03.000001', '%r');Result: '05:42:03 PM'mysql> SELECT TIME_FORMAT('17:42:03.000001', '%T');Result: '17:42:03'mysql> SELECT TIME_FORMAT('07:42:03.000001', '%f');Result: '000001'
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- MySQL日期时间函数大全
- JavaScript的继承方法
- 读书笔记 How Google Tests Software --Foreword by Alberto Savoia
- AVPro Movie Capture录屏(旧版本)
- ceph 统计集群文件数
- Kylin执行查询流程分析
- MySQL日期时间函数大全
- 打印螺旋矩阵
- Xcode8 missing file 报出 ”xx“is missing from working copy 的问题 解决方法汇总
- Eclipse项目导入到Android Studio时遇到的错误Error: java.util.concurrent.ExecutionException: com.android.ide.comm
- 2017大二第三周学习笔记
- JAVA学习笔记04——Linux系统下安装Tomcat
- Oracle物化视图详解
- MyBatis 配置1
- crf模型