MySql中的时间和日期函数
2014-01-23 21:40
465 查看
DAYOFWEEK(date):
返回日期date是星期几(1=星期天, 2=星期一, ......, 7=星期六)
如: SELECT DAYOFWEEK("2014-01-05");
WEEKDAY(date):
返回日期date是星期几(0=星期一, 1=星期二, ......, 6=星期天)
如:SELECT WEEKDAY("2014/01/22"); => 2
DAYOFMONTH(date):
返回date是一个月中的第几日(返回值:1~31)
如:SELECT DAYSOFMONTH("2014.01.22") => 22
DAYOFYEAR(date):
返回date是一年中的第几日(返回值:1~366)
如:SELECT DAYOFYEAR("2014-01-22"); => 22
MONTH(date):
返回date中的月份数值(返回值:1~12)
如:SELECT MONTH("2014-01-11"); => 1
DAYNAME(date):
按英文名返回date是星期几
如:SELECT DAYNAME("2014-01-22"); => Wednesday
MONTHNAME(date):
按英文名返回date是几月份
如:SELECT MONTHNAME("2014-01-22"); => January
QUARTER(date):
返回date是一年的第几个季度
如:SELECT QUARTER("2014-01-23"); => 1
WEEK(date,first):
返回date是一年的第几周(frist默认值0,first取值1表示周一是一周的开始,0表示从周日开始)
如:SELECT WEEK("2014-01-23", 0); => 3
SELECT WEEK("2014-01-23", 1); => 4
YEAR(date):
返回date的年份
如: SELECT YEAR("2014-01-23"); => 2014
HOUR(time):
返回time的小时数(0~23)
如: SELECT HOUR("10:06:07"); => 10
MINUTE(time):
返回time的分钟数(0~59)
如: SELECT MINUTE("2014-01-23 14:12:42"); => 12
SECEND(time):
返回time的秒数(0~59)
如: SELECT SECOND("10:13:12"); => 12
PERIOD_ADD(P, N):
增加N个月到日期P并返回(P的格式YYMM或YYYYMM)
如: SELECT PERIOD_ADD(201401, 1); => 201402
PERIOD_DIFF(P1, P2):
返回在时期P1和P2之间的月数(P1和P2的格式YYMM或YYYYMM)
如: SELECT PERIOD_DIFF(201408, 201401); => 7
日期和时间的加减法运算:
DATE_ADD(date, INTERVAL expr type)
DATE_SUB(date, INTERVAL expr type)
ADDDATE(date, INTERVAL expr type)
SUBDATE(date INTERVAL expr type)
关于expr和type的关系:
如:SELECT '2014-01-23 23:59:59' + INTERVAL 1 SECOND; => 2014-01-24 00:00:00
SELECT '2014-01-23' - INTERVAL 1 SECOND; => 2014-01-22 23:59:59
SELECT DATE_ADD("2014-01-23 23:59:59", INTERVAL 1 SECOND); => 2014-01-24 00:00:00
SELECT DATE_ADD("2014-01-23 23:59:59", INTERVAL 1 DAY); => 2014-01-24 23:59:59
SELECT DATE_ADD("2014-01-23 16:00:00", INTERVAL "1:1" MINUTE_SECOND); => 2014-01-23 16:01:01
SELECT DATE_SUB("2014-01-23 16:00:00", INTERVAL "1 1:1:1" DAY_SECOND); => 2014-01-22 14:58:59
SELECT DATE_ADD("2014-01-23 16:00:00", INTERVAL "-1 10" DAY_HOUR); => 2014-01-22 06:00:00
SELECT DATE_SUB("2014-01-23", INTERVAL 31 DAY); => 2013-12-23
SELECT EXTRACT(YEAR FROM "2014-01-23"); => 2014
SELECT EXTRACT(YEAR_MONTH FROM "2014-01-23 01:02:03"); => 201401
TO_DAYS(date):
返回日期date是西元0年至今多少天(不计算1582年以前)
如:SELECT TO_DAYS("2014-01-23"); => 735621
FROM_DAYS(N):
西元0年至今N天的日期
如: SELECT FROM_DAYS(735621); => 2014-01-23
DATE_FORMAT(date, format):
根据format字符串格式化date值
format字符串中可用标识符:
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 字符%
如:SELECT DATE_FORMAT('2014-01-23 20:56:09', '%W %M %Y'); => Thursday January 2014
SELECT DATE_FORMAT('2014-01-23 20:56:09', '%H:%i:%s'); => 20:56:09
CURDATE():
CURRENT_DATE():
返回当前日期
如: SELECT CURDATE(); => 2014-01-23
SELECT CUR_DATE(); => 2014-01-23
SELECT CURDATE()+0; => 20140123
CURTIME():
CURRENT_TIME():
返回当前时间
如: SELECT CURTIME(); => 21:04:04
SELECT CURRENT_TIME(); => 21:05:25
SELECT CURTIME() + 0; => 210606.000000
NOW():
SYSDATE():
CURRENT_TIMESTAMP():
返回当前日期和时间:
如: SELECT NOW(); => 2014-01-23 21:07:04
SELECT SYSDATE(); => 2014-01-23 21:07:04;
SELECT CURRENT_TIMESTAMP(); => 2014-01-23 21:07:04
SELECT NOW()+0; => 20140123211516.000000
UNIX_TIMESTAMP():
UNIX_TIMESTAMP(date):
返回一个Unix时间戳(从'1970-01-01 00:00:00'GMT开始的秒数,date默认值为当前时间)
如:SELECT UNIX_TIMESTAMP(); => 1390483015
FROM_UNIXTIME(unix_timestamp):
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回时间戳的值(根据返回值所处上下文是字符串或数字)
如: SELECT FROM_UNIXTIME(1390483015); => 2014-01-23 21:16:55
SELECT FROM_UNIXTIME(1390483015)+0; => 20140123211655.000000
FROM_UNIXTIME(unix_timestamp, format):
以format字符串格式返回时间戳的值
如:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x'); => 2014 23rd January 09:21:56 2014
SEC_TO_TIME(seconds):
以'HH:MM:SS'或HHMMSS格式返回秒数转成的TIME值(根据返回值所处上下文是字符串或数字)
如: SELECT SEC_TO_TIME(3900); => 01:05:00
SELECT SEC_TO_TIME(3900)+0; => 10500.000000
TIME_TO_SEC(time):
返回time值有多少秒
如:SELECT TIME_TO_SEC('01:05:00'); => 3900
返回日期date是星期几(1=星期天, 2=星期一, ......, 7=星期六)
如: SELECT DAYOFWEEK("2014-01-05");
WEEKDAY(date):
返回日期date是星期几(0=星期一, 1=星期二, ......, 6=星期天)
如:SELECT WEEKDAY("2014/01/22"); => 2
DAYOFMONTH(date):
返回date是一个月中的第几日(返回值:1~31)
如:SELECT DAYSOFMONTH("2014.01.22") => 22
DAYOFYEAR(date):
返回date是一年中的第几日(返回值:1~366)
如:SELECT DAYOFYEAR("2014-01-22"); => 22
MONTH(date):
返回date中的月份数值(返回值:1~12)
如:SELECT MONTH("2014-01-11"); => 1
DAYNAME(date):
按英文名返回date是星期几
如:SELECT DAYNAME("2014-01-22"); => Wednesday
MONTHNAME(date):
按英文名返回date是几月份
如:SELECT MONTHNAME("2014-01-22"); => January
QUARTER(date):
返回date是一年的第几个季度
如:SELECT QUARTER("2014-01-23"); => 1
WEEK(date,first):
返回date是一年的第几周(frist默认值0,first取值1表示周一是一周的开始,0表示从周日开始)
如:SELECT WEEK("2014-01-23", 0); => 3
SELECT WEEK("2014-01-23", 1); => 4
YEAR(date):
返回date的年份
如: SELECT YEAR("2014-01-23"); => 2014
HOUR(time):
返回time的小时数(0~23)
如: SELECT HOUR("10:06:07"); => 10
MINUTE(time):
返回time的分钟数(0~59)
如: SELECT MINUTE("2014-01-23 14:12:42"); => 12
SECEND(time):
返回time的秒数(0~59)
如: SELECT SECOND("10:13:12"); => 12
PERIOD_ADD(P, N):
增加N个月到日期P并返回(P的格式YYMM或YYYYMM)
如: SELECT PERIOD_ADD(201401, 1); => 201402
PERIOD_DIFF(P1, P2):
返回在时期P1和P2之间的月数(P1和P2的格式YYMM或YYYYMM)
如: SELECT PERIOD_DIFF(201408, 201401); => 7
日期和时间的加减法运算:
DATE_ADD(date, INTERVAL expr type)
DATE_SUB(date, INTERVAL expr type)
ADDDATE(date, INTERVAL expr type)
SUBDATE(date INTERVAL expr type)
关于expr和type的关系:
type | expr |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
MONTH | MONTHS |
YEAR | YERAS |
MINUTE_SECOND | "MINUTES:SECONDS" |
HOUR_MINUTE | "HOURS:MINUTES" |
DAY_HOUR | "DAYS HOURS" |
YEAR_MONTH | "YEARS-MONTHS" |
HOUR_SECOND | "HOURS:MINUTES:SECONDS" |
DAY_MINUTE | "DAYS HOURS:MINUTES" |
DAY_SECOND | "DAYS HOURS:MINUTES:SECONDS" |
SELECT '2014-01-23' - INTERVAL 1 SECOND; => 2014-01-22 23:59:59
SELECT DATE_ADD("2014-01-23 23:59:59", INTERVAL 1 SECOND); => 2014-01-24 00:00:00
SELECT DATE_ADD("2014-01-23 23:59:59", INTERVAL 1 DAY); => 2014-01-24 23:59:59
SELECT DATE_ADD("2014-01-23 16:00:00", INTERVAL "1:1" MINUTE_SECOND); => 2014-01-23 16:01:01
SELECT DATE_SUB("2014-01-23 16:00:00", INTERVAL "1 1:1:1" DAY_SECOND); => 2014-01-22 14:58:59
SELECT DATE_ADD("2014-01-23 16:00:00", INTERVAL "-1 10" DAY_HOUR); => 2014-01-22 06:00:00
SELECT DATE_SUB("2014-01-23", INTERVAL 31 DAY); => 2013-12-23
SELECT EXTRACT(YEAR FROM "2014-01-23"); => 2014
SELECT EXTRACT(YEAR_MONTH FROM "2014-01-23 01:02:03"); => 201401
TO_DAYS(date):
返回日期date是西元0年至今多少天(不计算1582年以前)
如:SELECT TO_DAYS("2014-01-23"); => 735621
FROM_DAYS(N):
西元0年至今N天的日期
如: SELECT FROM_DAYS(735621); => 2014-01-23
DATE_FORMAT(date, format):
根据format字符串格式化date值
format字符串中可用标识符:
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 字符%
如:SELECT DATE_FORMAT('2014-01-23 20:56:09', '%W %M %Y'); => Thursday January 2014
SELECT DATE_FORMAT('2014-01-23 20:56:09', '%H:%i:%s'); => 20:56:09
CURDATE():
CURRENT_DATE():
返回当前日期
如: SELECT CURDATE(); => 2014-01-23
SELECT CUR_DATE(); => 2014-01-23
SELECT CURDATE()+0; => 20140123
CURTIME():
CURRENT_TIME():
返回当前时间
如: SELECT CURTIME(); => 21:04:04
SELECT CURRENT_TIME(); => 21:05:25
SELECT CURTIME() + 0; => 210606.000000
NOW():
SYSDATE():
CURRENT_TIMESTAMP():
返回当前日期和时间:
如: SELECT NOW(); => 2014-01-23 21:07:04
SELECT SYSDATE(); => 2014-01-23 21:07:04;
SELECT CURRENT_TIMESTAMP(); => 2014-01-23 21:07:04
SELECT NOW()+0; => 20140123211516.000000
UNIX_TIMESTAMP():
UNIX_TIMESTAMP(date):
返回一个Unix时间戳(从'1970-01-01 00:00:00'GMT开始的秒数,date默认值为当前时间)
如:SELECT UNIX_TIMESTAMP(); => 1390483015
FROM_UNIXTIME(unix_timestamp):
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回时间戳的值(根据返回值所处上下文是字符串或数字)
如: SELECT FROM_UNIXTIME(1390483015); => 2014-01-23 21:16:55
SELECT FROM_UNIXTIME(1390483015)+0; => 20140123211655.000000
FROM_UNIXTIME(unix_timestamp, format):
以format字符串格式返回时间戳的值
如:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x'); => 2014 23rd January 09:21:56 2014
SEC_TO_TIME(seconds):
以'HH:MM:SS'或HHMMSS格式返回秒数转成的TIME值(根据返回值所处上下文是字符串或数字)
如: SELECT SEC_TO_TIME(3900); => 01:05:00
SELECT SEC_TO_TIME(3900)+0; => 10500.000000
TIME_TO_SEC(time):
返回time值有多少秒
如:SELECT TIME_TO_SEC('01:05:00'); => 3900
相关文章推荐
- MySQL:日期函数、时间函数总结
- mysql 中 时间和日期函数
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- mysql 中 时间和日期函数
- mysql 中 时间和日期函数
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- mysql 中 时间和日期函数
- MYSQL 内置时间日期函数 CURRENT_DATE ,CURRENT_TIME,CURRENT_TIMESTAMP
- mysql时间和日期函数大全
- mysql 中 时间和日期函数
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- mysql 时间与日期函数与不求人
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- MySql 时间日期函数
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- mysql 中 时间和日期函数
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- mysql 时间日期函数