MySQL 时间日期类型和相关函数
一、时间日期类型
类型 | 字节 | 最小值 | 最大值 | 零值 |
DATETIME | 8 | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 | 0000-00-00 00:00:00 |
DATE | 4 | 1000-01-01 | 9999-12-31 | 0000-00-00 |
TIMESTAMP | 4 | 19700101080001 | 2038年某时刻 | 00000000000000 |
TIME | 3 | -838:59:59 | 838:59:59 | 00:00:00 |
YEAR | 1 | 1901 | 2155 | 0000 |
TIMESTAMP返回的格式为"YYYY-MM-DD HH:MM:SS",宽度固定为19个字符,要想获得数字值,可以 select current_timestamp+0 的方式:
YEAR有2位(5.5.27之前的版本有)或4位格式的年,默认是4位格式,在4位格式中,允许的值1901 ~ 2155和0000,在2位格式中,允许的值是70 ~ 69,表示1970 ~ 2069,YEAR返回的格式为“YYYY”。
对于以上所有时间和日期类型,若想插入当前时间对应的值,可以用current_timestamp、now():
二、时间日期函数
函数 | 功能 | 格式 |
CURDATE() | 返回当前日期 | 2016-10-29 |
CURTIME() | 返回当前时间 | 11:20:34 |
NOW() | 返回当前的日期和时间 | 2016-10-29 11:21:02 |
UNIX_TIMESTAMP(date) UNIX_TIMESTAMP() |
返回日期date的UNIX时间戳 |
执行:select unix_timestamp() 输出:1477711822 |
FROM_UNIXTIME(unix_timestamp) | 返回UNIX时间戳的日期值 |
执行:select from_unixtime(1477670400) 输出:2016-10-29 11:30:22 |
WEEK(date) | 返回日期date为一年中的第几周 |
执行:select week(curdate()) 输出:43 |
YEAR(date) | 返回日期date的年份 |
执行: select year(curdate()) 输出:2016 |
HOUR(time) | 返回time的小时值 |
执行:select hour(curtime()); 输出:11 |
MINUTE(time) | 返回time的分钟值 |
执行:select minute(curtime()) 输出:36 |
MONTHNAME(date) | 返回date的月份名 |
执行:select monthname(curdate()) 输出October |
DATE_FORMAT(date, format) | 返回按字符串format格式化日期date值 |
执行:select date_format(now(), '%Y年%c月%e日 %T时%i分%S秒'); 输出:2016年10月29日 11:44:57时44分57秒 |
DATE_ADD(date,INTERVAL expr type) | 返回一个日期值加上一个时间间隔的时间值 |
执行:select now() current,date_add(now(),INTERVAL 1 day) after_one_day; 输出:2016-10-29 11:52:10 | 2016-10-30 11:52:10 |
DATEDIFF(expr1,expr2) | 返回起始时间expr1和结束时间expr2之间的天数 |
执行:select datediff('2016-10-20',now()); 输出:-9 执行:select datediff(now(),'2016-10-20') 输出:9 |
UNIX_TIMESTAMP(date)和 FROM_UNIXTIME(unix_timestamp)是互逆作用的.
DATE_FORMAT(date,format)函数:
format字符串中的格式符:
格式符 | 格式说明 |
%S和%s | 两位数字形式的秒(00, 01, ... , 59) |
%i | 两位数字的分(00, 01, ... , 59) |
%H | 两位数字形式的小时,24小时(00,01,...,23) |
%h和%I |
两位数字形式的小时,24小时(01,02,...,12) |
%k | 数字形式的小时,24小时(0,1,2,...,23) |
%l | 数字形式的小时,12小时(1,2,...,12) |
%T | 24小时的时间形式(hh:mm:ss) |
%r | 12小时的时间形式(hh:mm:ssAM或hh:mm:ssPM) |
%p | AM或PM |
%W | 一周中每一天的名称(Sunday,Monday,...,Saturday) |
%a | 一周中每一天的名称缩写(Sun,Mon,...,Sat) |
%d | 两位数字表示月中的天数(00,01,...,31) |
%e | 数字表示月中天数(1,2,...,31) |
%D | 英文后缀表示月中的天数(1st,2nd,3rd,...) |
%w | 数字形式表示周中的天数(0=Sunday,1=Monday...) |
%j | 以3位数字表示年中天数(001,002,...,366) |
%U | 年的周(0,1...,52),其中Sunday位周第一天 |
%u | 年的周(0,1...,52),其中Monday位周第一天 |
%M | 月名(January,February,...,December) |
%b | 缩写的月名(Jan,Feb,...Dec) |
%m | 两位数字表示的月份(01,02,...,12) |
%c | 数字表示的月份(1,2,...,12) |
%Y | 4位数字表示的年份 |
%y | 两位数字表示的年份 |
%% | 转义 |
实例:
DATE_ADD(date,INTERVAL expr type):其中INTERVAL时间隔类型关键字,expr是一个表达式,对应后面的类型,type时间隔类型,其值如下表
表达式类型 | 描述 | 格式 |
HOUR | 小时 | hh |
MINUTE | 分 | mm |
SECOND | 秒 | ss |
YEAR | 年 | YY |
MONTH |
月 | MM |
DAY | 日 | DD |
YEAR_MONTH | 年和月 | YY-MM |
DAY_HOUR | 日和小时 | DD hh |
DAY_MINUTE | 日和分钟 | DD hh:mm |
DAY_SECOND | 日和秒 | DD hh:mm:ss |
HOUR_MINUTE | 小时和分 | hh:mm |
HOUR_SECOND | 小时和秒 | hh:ss |
MINUTE_SECOND | 分钟和秒 | mm:ss |
例如,得到3天5小时后的时间:
得到3天5小时前的时间:
关于datetime和timestamp
MySQL中datetime能保存的日期范围从1001年到9999年,精度为秒,存储时把日期和时间封装为YYYYMMDDHHMMSS的格式的整数中,与时区无关,使用8个字节存储。
timestamp类型能保存的日期范围从1970年1月1日到2038年12月31日,它存储的是时间戳,只用了4个字节,所以范围比datetime小很多,timestamp是和时区相关的。默认情况下,如果插入时没有指定第一个timestamp列的值,那么mysql会默认给设置当前时间。在更新一行记录时,也会更新第一个timestamp列的值为当前时间(除非指定了该列的值)
相关推荐
MySQL是世界上最受欢迎的关系型数据库管理系统之一,其在处理日期和时间数据方面提供了丰富的函数和操作。日期和时间函数是MySQL中的重要组成部分,它们允许我们进行日期和时间的计算、格式化以及各种操作,极大地...
MySQL 日期函数和时间函数是 MySQL 中非常重要的函数,用于处理日期和时间数据类型。这些函数可以帮助开发者快速获得当前日期和时间、执行日期和时间相关的操作。 获得当前日期时间函数 MySQL 中有多种方式可以...
3. 日期和时间函数:如NOW()获取当前日期和时间,DATE_FORMAT()用于格式化日期和时间,DATE_ADD()和DATE_SUB()可以对日期进行加减操作。 4. 转换函数:如CAST()和CONVERT()用于在不同数据类型间转换,以及INET_ATON...
Mysql日期和时间函数大全是Mysql中日期和时间处理函数的集合,它们用于处理日期和时间类型的数据。这些函数可以用于各种日期和时间相关的计算、比较和格式化操作。 日期和时间类型 在Mysql中,日期和时间类型包括...
mysql的日期和时间函数 这里是一个使用日期函数的例子。下面的查询选择所有 date_col 值在最后 30 天内的记录。 mysql> SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) ...
MySQL作为一款广泛使用的开源关系型数据库管理系统,提供了丰富的内置函数来帮助开发者进行时间和日期的操作。本文将详细介绍MySQL中常用的时间和日期函数及其应用场景。 #### 1. WEEKDAY(date) 此函数返回指定...
内容概要:笔者将MySQL常用的函数分为字符串函数、窗口函数、日期和时间函数、聚合函数、数值型函数、逻辑判断函数六类。将每一类别中常用的函数进行汇总,主要向读者介绍各个类别中常用函数的作用,在介绍的同时给...
### MySQL日期数据类型与时间类型...通过以上总结,我们可以看到MySQL提供的日期和时间数据类型及其相关函数非常实用且强大,能够满足大多数应用的需求。掌握这些类型和函数的使用方法,对于开发人员来说是非常有益的。
在MySQL中,函数可以分为多种类型,如数学函数、字符串函数、日期和时间函数、控制流程函数、系统信息函数等。下面我们将逐一详细介绍这些类别: 1. **数学函数**: - ABS():返回一个数的绝对值。 - CEIL() 和 ...
MySQL中的日期时间函数是数据库操作中的重要组成部分,它们在处理日期和时间数据时起到至关重要的作用。本篇文章将深入解析一些常用的MySQL日期时间函数以及数值函数。 1. **时间转化秒函数:time_to_sec** `time_...
这些内置函数涵盖了数学、字符串、日期时间、比较、类型转换等多个领域,对于开发人员和数据库管理员来说是不可或缺的工具。下面将详细介绍一些重要的MySQL 5.6内置函数。 1. 数学函数: - ABS():返回一个数值的...
本文将深入探讨MySQL中的几个关键函数,包括`DECODE`函数以及日期和字符串之间的转换方法。 一、`DECODE`函数 在MySQL中,`DECODE`函数是一个非常实用的条件判断工具,它允许你在一个表达式中进行简单的if-then-...
MySQL支持多种数据类型,包括数值、日期和时间、字符串等。在数据库的使用中,函数是一个非常重要的概念,可以对数据进行加工、计算和格式化处理。MySQL提供了丰富的函数,包括数学函数、字符串函数、日期时间函数等...
MySQL内部函数是数据库管理系统中非常重要的组成部分,它们用于执行各种数据处理任务,包括但不限于计算、比较、转换和处理日期时间等。以下是对标题和描述中提及的一些关键知识点的详细解释: 1. **操作符和操作符...
MySQL 中可以使用 STR_TO_DATE 函数将日期时间字符串转换为日期时间类型。例如,使用 `SELECT STR_TO_DATE('2009-06-05 12:00:00', '%Y-%m-%d %H:%i:%s')` 可以将字符串 '2009-06-05 12:00:00' 转换为日期时间类型。...
内容概要:本文档介绍了 MySQL 数据库中的内置函数及其使用方法,包括日期时间函数、字符串函数、数学函数及其他常用函数。详细解释了每种类型的函数及其常见应用场景,提供了具体的 SQL 语句实例。 适合人群:MySQL...
1、Concat函数。 连接字符串常用:concat函数。如sql查询条件的like查询, AND c.name like concat(#{param.name},’%’) 将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’80’ 2、Cast...
MySQL提供了丰富的内置函数,涵盖了数学、字符串、日期时间、条件判断等多个领域。以下将详细阐述MySQL函数的一些关键知识点。 1. 数学函数: - ABS():返回一个数的绝对值。 - CEIL() 和 FLOOR():分别返回大于...