函数 | 描述 |
---|---|
NOW | 返回当前日期和时间 |
CURDATE | 返回当前日期 |
CURRENT_DATE | 返回当前日期 |
CURRENT_TIME | 返回当前时间 |
CURRENT_TIMESTAMP | 返回当前日期和时间 |
CURTIME | 返回当前时间 |
LOCALTIME | 返回当前日期和时间 |
LOCALTIMESTAMP | 返回当前日期和时间 |
SYSDATE | 返回当前日期和时间 |
FROM_DAYS | 从数字日期值返回日期 |
MAKEDATE | 根据年份和天数值创建并返回日期 |
MAKETIME | 根据小时、分钟和秒值创建并返回时间 |
SEC_TO_TIME | 根据指定的秒数返回一个时间值 |
STR_TO_DATE | 根据字符串和格式返回日期 |
TIMESTAMP | 根据日期或日期时间值返回一个日期时间值 |
函数 | 描述 |
---|---|
DATE_FORMAT | 格式化日期 |
TIME_FORMAT | 按指定格式格式化时间 |
EXTRACT | 从给定日期提取部分 |
DATE | 从日期时间表达式中提取日期部分 |
TIME | 从给定时间/日期时间中提取时间部分 |
YEAR | 返回给定日期的年份部分 |
QUARTER | 返回给定日期值的一年中的季度 |
MONTH | 返回给定日期的月份部分 |
MONTHNAME | 返回给定日期的月份名称 |
DAYOFMONTH / DAY | 返回给定日期的月份日期 |
HOUR | 返回给定日期的小时部分 |
MINUTE | 返回时间/日期时间的分钟部分 |
SECOND | 返回时间/日期时间的秒部分 |
MICROSECOND | 返回时间/日期时间的微秒部分 |
TIME_TO_SEC | 将时间值转换为秒 |
DAYOFYEAR | 返回给定日期的一年中的哪一天 |
DAYOFWEEK | 返回给定日期的星期索引 |
WEEKDAY | 返回给定日期的星期编号 |
DAYNAME | 返回给定日期的星期名称 |
WEEK | 返回给定日期的周数 |
WEEKOFYEAR | 返回给定日期的周数 |
YEARWEEK | 返回给定日期的年和周数 |
TO_DAYS | 返回日期和日期"0000-00-00"之间的天数 |
函数 | 描述 |
---|---|
ADDDATE | 将时间/日期间隔添加到日期,然后返回日期 |
ADDTIME | 将时间间隔添加到时间/日期时间,然后返回时间/日期时间 |
DATEDIFF | 返回两个日期值之间的天数 |
DATE_ADD | 将时间/日期间隔添加到日期,然后返回日期 |
DATE_SUB | 从日期中减去时间/日期间隔,然后返回日期 |
PERIOD_ADD | 将指定的月数添加到期间 |
PERIOD_DIFF | 返回两个句点之间的差 |
SUBDATE | 从日期中减去时间/日期间隔,然后返回日期 |
SUBTIME | 从日期时间中减去一个时间间隔,然后返回时间/日期时间 |
TIMEDIFF | 返回两个时间/日期时间表达式之间的差异 |
LAST_DAY | 提取给定日期当月的最后一天 |
将时间/日期间隔添加到日期,然后返回日期
语法
- ADDDATE(date, INTERVAL value addunit)
-
示例
- mysql> SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);
- +----------------------------------------+
- | ADDDATE("2017-06-15", INTERVAL 10 DAY) |
- +----------------------------------------+
- | 2017-06-25 |
- +----------------------------------------+
-
将时间/日期间隔添加到日期,然后返回日期
语法
- DATE_ADD(date, INTERVAL value addunit)
-
- SELECT DATE_ADD("2017-06-15", INTERVAL 2 DAY);
- +----------------------------------------+
- | DATE_ADD("2017-06-15", INTERVAL 2 DAY) |
- +----------------------------------------+
- | 2017-06-17 |
- +----------------------------------------+
-
从日期中减去时间/日期间隔,然后返回日期
语法
- DATE_SUB(date, INTERVAL value interval)
-
示例
- SELECT DATE_SUB("2017-06-15", INTERVAL 2 DAY);
- +----------------------------------------+
- | DATE_SUB("2017-06-15", INTERVAL 2 DAY) |
- +----------------------------------------+
- | 2017-06-13 |
- +----------------------------------------+
-
返回两个日期值之间的天数
语法
- DATEDIFF(date1, date2)
-
示例
- SELECT DATEDIFF("2017-01-10", "2017-01-01");
- +--------------------------------------+
- | DATEDIFF("2017-01-10", "2017-01-01") |
- +--------------------------------------+
- | 9 |
- +--------------------------------------+
-
返回给定日期的月份部分(从 1 到 12 的数字)
语法
- MONTH(date)
-
示例
- mysql> SELECT MONTH("2017-06-15");
- +---------------------+
- | MONTH("2017-06-15") |
- +---------------------+
- | 6 |
- +---------------------+
-
返回给定日期的月份名称
语法
- MONTHNAME(date)
-
示例
- mysql> SELECT MONTHNAME("2017-06-15");
- +-------------------------+
- | MONTHNAME("2017-06-15") |
- +-------------------------+
- | June |
- +-------------------------+
-
示例
- -- 返回当前日期
- mysql> SELECT CURDATE();
- +------------+
- | CURDATE() |
- +------------+
- | 2023-10-24 |
- +------------+
-
- -- 返回当前日期
- mysql> SELECT CURRENT_DATE();
- +----------------+
- | CURRENT_DATE() |
- +----------------+
- | 2023-10-24 |
- +----------------+
-
- -- 返回当前时间
- mysql> SELECT CURRENT_TIME();
- +----------------+
- | CURRENT_TIME() |
- +----------------+
- | 11:39:45 |
- +----------------+
-
- -- 返回当前时间
- mysql> SELECT CURTIME();
- +-----------+
- | CURTIME() |
- +-----------+
- | 11:40:44 |
- +-----------+
-
- -- 返回当前日期和时间
- mysql> SELECT CURRENT_TIMESTAMP();
- +---------------------+
- | CURRENT_TIMESTAMP() |
- +---------------------+
- | 2023-10-24 11:40:12 |
- +---------------------+
-
- -- 返回当前日期和时间
- mysql> SELECT LOCALTIME();
- +---------------------+
- | LOCALTIME() |
- +---------------------+
- | 2023-10-24 14:09:55 |
- +---------------------+
-
- -- 返回当前日期和时间
- mysql> SELECT LOCALTIMESTAMP();
- +---------------------+
- | LOCALTIMESTAMP() |
- +---------------------+
- | 2023-10-24 14:10:22 |
- +---------------------+
-
- -- 返回当前日期和时间
- mysql> SELECT NOW();
- +---------------------+
- | NOW() |
- +---------------------+
- | 2023-10-24 14:12:47 |
- +---------------------+
-
-
- -- 返回当前日期和时间
- mysql> SELECT SYSDATE();
- +---------------------+
- | SYSDATE() |
- +---------------------+
- | 2023-10-24 14:17:24 |
- +---------------------+
-
- -- 提取日期部分
- mysql> SELECT DATE("2017-06-15 09:34:21");
- +-----------------------------+
- | DATE("2017-06-15 09:34:21") |
- +-----------------------------+
- | 2017-06-15 |
- +-----------------------------+
-
- -- 从时间表达式中提取时间部分
- mysql> SELECT TIME("2017-08-15 19:30:10");
- +-----------------------------+
- | TIME("2017-08-15 19:30:10") |
- +-----------------------------+
- | 19:30:10 |
- +-----------------------------+
-
- -- 返回给定日期的年份部分(从 1000 到 9999 的数字)
- mysql> SELECT YEAR("2017-06-15");
- +--------------------+
- | YEAR("2017-06-15") |
- +--------------------+
- | 2017 |
- +--------------------+
-
- -- 返回给定日期的小时部分
- mysql> SELECT HOUR("2017-06-20 09:34:00");
- +-----------------------------+
- | HOUR("2017-06-20 09:34:00") |
- +-----------------------------+
- | 9 |
- +-----------------------------+
-
- -- 从给定日期提取部分
- SELECT EXTRACT(MONTH FROM "2017-06-15");
- +----------------------------------+
- | EXTRACT(MONTH FROM "2017-06-15") |
- +----------------------------------+
- | 6 |
- +----------------------------------+
-
- -- 返回给定日期的月份日期,等于 DAY() 函数
- mysql> SELECT DAYOFMONTH("2017-06-15");
- +--------------------------+
- | DAYOFMONTH("2017-06-15") |
- +--------------------------+
- | 15 |
- +--------------------------+
-
- -- 返回某个日期的工作日索引
- -- 1=星期日,2=星期一,3=星期二,4=星期三,5=星期四,6=星期五,7=星期六
- mysql> SELECT DAYOFWEEK("2017-06-15");
- +-------------------------+
- | DAYOFWEEK("2017-06-15") |
- +-------------------------+
- | 5 |
- +-------------------------+
-
- -- 返回日期的工作日编号
- -- 0 = 星期一,1 = 星期二,2 = 星期三,3 = 星期四,4 = 星期五,5 = 星期六,6 = 星期日
- mysql> SELECT WEEKDAY("2017-06-15");
- +-----------------------+
- | WEEKDAY("2017-06-15") |
- +-----------------------+
- | 3 |
- +-----------------------+
-
- -- 返回给定日期的星期名称
- mysql> SELECT DAYNAME("2017-06-15");
- +-----------------------+
- | DAYNAME("2017-06-15") |
- +-----------------------+
- | Thursday |
- +-----------------------+
-
- -- 返回给定日期的一年中的哪一天(从 1 到 366 的数字)
- mysql> SELECT DAYOFYEAR("2017-06-15");
- +-------------------------+
- | DAYOFYEAR("2017-06-15") |
- +-------------------------+
- | 166 |
- +-------------------------+
-
- -- 返回时间/日期时间的微秒部分(从 0 到 999999)
- mysql> SELECT MICROSECOND("2017-06-20 09:34:00.000023");
- +-------------------------------------------+
- | MICROSECOND("2017-06-20 09:34:00.000023") |
- +-------------------------------------------+
- | 23 |
- +-------------------------------------------+
-
- -- 返回时间/日期时间的分钟部分(从 0 到 59)
- mysql> SELECT MINUTE("2017-06-20 09:34:00");
- +-------------------------------+
- | MINUTE("2017-06-20 09:34:00") |
- +-------------------------------+
- | 34 |
- +-------------------------------+
-
- -- 提取给定日期该月的最后一天
- mysql> SELECT LAST_DAY("2017-06-20");
- +------------------------+
- | LAST_DAY("2017-06-20") |
- +------------------------+
- | 2017-06-30 |
- +------------------------+
-
- -- 返回给定日期值(从 1 到 4 的数字)的一年中的季度
- mysql> SELECT QUARTER("2017-06-15");
- +-----------------------+
- | QUARTER("2017-06-15") |
- +-----------------------+
- | 2 |
- +-----------------------+
-
- -- 返回时间/日期时间的秒部分(从 0 到 59)
- mysql> SELECT SECOND("23:59:59");
- +--------------------+
- | SECOND("23:59:59") |
- +--------------------+
- | 59 |
- +--------------------+
-
-
按指定格式化日期
语法
- DATE_FORMAT(date, format)
-
格式 | 描述 |
---|---|
%a | 工作日的缩写名称(周日至周六) |
%b | 缩写月份名称(1 月至 12 月) |
%c | 数字月份名称(0 到 12) |
%D | 以数字形式表示的月份中的日期,后跟后缀 (1st, 2nd, 3rd, …) |
%d | 以数值表示的月份中的日期(01 到 31) |
%e | 以数字形式表示的月份中的日期(0 到 31) |
%f | 微秒(000000 到 999999) |
%H | 小时(00 到 23) |
%h | 小时(00 到 12) |
%I | 小时(00 到 12) |
%i | 分钟(00 到 59) |
%j | 一年中的某一天(001 到 366) |
%k | 小时(0 到 23) |
%l | 小时(1 到 12) |
%M | 完整的月份名称(1 月至 12 月) |
%m | 数字形式的月份名称(00 到 12) |
%p | 上午或下午 |
%r | 12 小时 AM 或 PM 格式的时间 (hh:mm:ss AM/PM) |
%S | 秒(00 到 59) |
%s | 秒(00 到 59) |
%T | 24 小时制时间 (hh:mm:ss) |
%U | 星期天是一周的第一天(00 到 53) |
%u | 星期一是一周的第一天的星期(00 到 53) |
%V | 星期天是一周的第一天(01 到 53)。与 %X 一起使用 |
%v | 星期一是一周的第一天的星期(01 到 53)。与 %X 一起使用 |
%W | 完整的工作日名称(周日至周六) |
%w | 星期天=0,星期六=6 |
%X | 星期天是一周的第一天的星期。与 %V 一起使用 |
%x | 星期一是一周的第一天的一周的年份。与 %V 一起使用 |
%Y | 4 位数字形式的年份 |
%y | 2 位数字形式的年份 |
示例
- mysql> SELECT DATE_FORMAT("2017-06-01 09:01:02", "%Y-%m-%d %H:%i:%s");
- +---------------------------------------------------------+
- | DATE_FORMAT("2017-06-01 09:01:02", "%Y-%m-%d %H:%i:%s") |
- +---------------------------------------------------------+
- | 2017-06-01 09:01:02 |
- +---------------------------------------------------------+
-