mysql date timestamp_【Mysql】Datetime和Timestamp区别,及mysql中各种时间的使用
说到数据库时间类型,大部分同学都会想到date、datetime、timestamp之类的。
我之前在项目遇到一个问题,测试同事在测试时,由于会测试205几年的数据,在入库时会抛出数据库异常,原因就是timestamp是有最大年份限制的。
下面先说说datetime与timestamp的区别:
datetime的默认值为null,timestamp的默认值不为null,且为系统当前时间(current_timestatmp)。如果不做特殊处理,且update没有指定该列更新,则默认更新为当前时间。
datetime占用8个字节,timestamp占用4个字节。timestamp利用率更高。
二者存储方式不一样,对于timestamp,它把客户端插入的时间从当前时区转化为世界标准时间(UTC)进行存储,查询时,逆向返回。但对于datetime,基本上存什么是什么。
二者范围不一样。timestamp范围:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’; datetime范围:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。原因是,timestamp占用4字节,能表示最大的时间毫秒为2的31次方减1,也就是2147483647,换成时间刚好是2038-01-19 03:14:07.999999。
Mysql中常用到的时间相关的函数:
常用函数
Mysql服务器的三种时区设置
系统时区 - 保存在系统变量system_time_zone
服务器时区 - 保存在全局系统变量global.time_zone
每个客户端连接的时区 - 保存在会话变量session.time_zone
注意:客户端时区,会影响一些日期函数返回值的显示,例如:now()、curtime()、curdate(),也影响timestamp列值的显示。
默认情况下,客户端时区和服务器时区相同,均为SYSTEM,表示使用系统时区。
函数特殊说明
1、NOW([fsp]):返回服务器的当前日期和时间(fsp指定小数秒的精度,取值0--6)
now()函数的同义词有:CURRENT_TIMESTAMP 、 CURRENT_TIMESTAMP()、LOCALTIMESTAMP 、 LOCALTIMESTAMP()、LOCALTIME 、 LOCALTIME()。
2、SYSDATE( ):返回服务器的当前日期和时间。
与now()不同之处,now()返回语句执行时间,sysdate()返回函数执行时间。
3、CURTIME([fsp]):返回当前时间,只包含时分秒(fsp指定小数秒的精度,取值0--6)
同义词有:CURRENT_TIME 、 CURRENT_TIME()
4、CURDATE():返回当前日期,只包含年月日
同义词有: CURRENT_DATE 、CURRENT_DATE()
5、TIMEDIFF(expr1, expr2):返回两个日期相减(expr1 − expr2 )相差的时间数(两个参数类型必须相同)
mysql> select timediff('18:32:59','60000');
+------------------------------+
| timediff('18:32:59','60000') |
+------------------------------+
| 12:32:59 |
+------------------------------+
mysql> select timediff('18:32:59','2017-1-1 60000');
+---------------------------------------+
| timediff('18:32:59','2017-1-1 60000') |
+---------------------------------------+
| NULL |
+---------------------------------------+
DATEDIFF(expr1, expr2):返回两个日期相减(expr1 − expr2 )相差的天数。
mysql> select datediff('2017-3-24 18:32:59','2016-9-1');
+-------------------------------------------+
| datediff('2017-3-24 18:32:59','2016-9-1') |
+-------------------------------------------+
| 204 |
+-------------------------------------------+
6、日期时间运算函数:分别为给定的日期date加上(add)或减去(sub)一个时间间隔值expr
DATE_ADD(date, INTERVAL expr unit);
DATE_SUB(date, INTERVAL expr unit);
interval是间隔类型关键字
expr是一个表达式,对应后面的类型
unit是时间间隔的单位(间隔类型)(20个)
hour - 小时;minute - 分;second - 秒;microsecond - 毫秒; year - 年;month - 月;
day - 日; week - 周; quarter - 季; year_month - 年和月;day_hour - 日和小时;
day_minute - 日和分钟;day_second - 日和秒;hour_minute - 小时和分;hour_second - 小时和秒;
minute_second - 分钟和秒。
mysql> select now(),date_add(now(),interval 1day); #加一天+---------------------+--------------------------------+
| now() | date_add(now(),interval 1 day) |
+---------------------+--------------------------------+
| 2017-03-24 14:53:08 | 2017-03-25 14:53:08 |
+---------------------+--------------------------------+mysql> SELECT date_sub('2005-01-01 00:00:00',INTERVAL '1 1:1:1'DAY_SECOND); #减1天1小时1分1秒+---------------------------------------------------------------+
| date_sub('2005-01-01 00:00:00',INTERVAL '1 1:1:1' DAY_SECOND) |
+---------------------------------------------------------------+
| 2004-12-30 22:58:59 |
+---------------------------------------------------------------+
7、选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒(常用)
SELECT now(),date(now()); -- 日期
SELECT now(),time(now()); -- 时间
SELECT now(),year(now()); -- 年
SELECT now(),quarter(now()); -- 季度
SELECT now(),month(now()); -- 月
SELECT now(),week(now()); -- 周
SELECT now(),day(now()); -- 日
SELECT now(),hour(now()); -- 小时
SELECT now(),minute(now()); -- 分钟
SELECT now(),second(now()); -- 秒
SELECT now(),microsecond(now()); -- 微秒
EXTRACT(unit FROM date):从日期中抽取出某个单独的部分或组合
SELECT now(),extract(YEAR FROM now()); -- 年
SELECT now(),extract(QUARTER FROM now()); -- 季度
SELECT now(),extract(MONTH FROM now()); -- 月
SELECT now(),extract(WEEK FROM now()); -- 周
SELECT now(),extract(DAY FROM now()); -- 日
SELECT now(),extract(HOUR FROM now()); -- 小时
SELECT now(),extract(MINUTE FROM now()); -- 分钟
SELECT now(),extract(SECOND FROM now()); -- 秒
SELECT now(),extract(YEAR_MONTH FROM now()); -- 年月
SELECT now(),extract(HOUR_MINUTE FROM now()); -- 时分
mysql date timestamp_【Mysql】Datetime和Timestamp区别,及mysql中各种时间的使用相关推荐
- 数据库的字段是date java里面能用timestamp吗_数据库中DATETIME,DATE和TIMESTAMP类型 的区别...
满意答案 KakiZoR 2017.03.29 采纳率:59% 等级:9 已帮助:668人 当你需要同时包含日期和时间信息的值时则使用DATETIME类型.MySQL以'YYYY-MM-DD H ...
- mysql date time year_YEAR、DATE、TIME、DATETIME和TIMESTAMP详细介绍[MySQL数据类型]
为了方便在数据库中存储日期和时间,MySQL提供了表示日期和时间的数据类型,分别是YEAR.DATE.TIME.DATETIME和TIMESTAMP.下面列举了这些MSL中日期和时间数据类型所对应的字 ...
- php和mysql时间类型,MySQL_Mysql中的Datetime和Timestamp比较,mysql中用于表示时间的三种类 - phpStudy...
Mysql中的Datetime和Timestamp比较 mysql中用于表示时间的三种类型date, datetime, timestamp (如果算上int的话,四种) 比较容易混淆,下面就比较一下 ...
- mysql date 默认值_通过Oracle DB了解MySQL
Oracle数据库是业界的翘楚,各行各业拥有大量的Oracle DB的DBA,本文尝试通过将Oracle与MySQL数据库的架构.安全.模式对象.数据类型及数据存储进行对比,以方便熟悉Oracle数据 ...
- oracle 中DATETIME与TIMESTAMP区别
1.DATETIME的日期范围是1001--9999年,TIMESTAMP的时间范围是1970--2038年. 2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也 ...
- MySQL 时间类型 DATE、DATETIME和TIMESTAMP
1.DATE.DATETIME和TIMESTAMP 表达的时间范围 Type Range Remark DATE '1000-01-01' to '9999-12-31' 只有日期部分,没有时间部分 ...
- MySQL Date,DateTime和Timestamp类型
Datetime类型用于存储同时包含日期和时间的值,MySQL检索并以"YYYY-MM-DD HH:MM:SS"格式显示Datetime值,支持范围是1000-01-01 00:0 ...
- mysql 时间日期类型 datetime、timestamp、date、time、year
MySQL中有多处表示日期的数据类型:YEAR.TIME.DATE.DTAETIME.TIMESTAMP.当只记录年信息的时候,可以只使用 YEAR 类型. 每一个类型都有合法的取值范围,当指定确定不 ...
- MySQL日期和时间数据类型(DATE、TIME、 DATETIME、 TIMESTAMP和YEAR)
目录 日期和时间数据类型语法 Date DATETIME和DATETIME(fsp) TIMESTAMP和TIMESTAMP[(fsp)] TIME和TIME(fsp) YEAR和YEAR(4) 本文 ...
最新文章
- 一维码Codabar简介及其解码实现(zxing-cpp)
- 如何找到存在Ceph里面的文件
- 【自动驾驶】Eigen:矩阵Matrix的使用
- HTTP一次完整的http请求所经历的步骤
- ABAP Development Tool IDE里编写的CDS view源代码是如何传递到ABAP后台并解析的
- c语言学生成绩查询课设报告,C语言课设报告(学生考试成绩查询程序)【荐】.doc...
- LeetCode 1691. 堆叠长方体的最大高度(排序+最大上升子序DP)
- Python 多进程
- 2014年5月30日
- 几款流行的开源后台管理框架
- 一拳超人手游显示服务器断开,一拳超人最强之男游戏无法登陆怎么办 解决方案一览...
- 常用坐标系汇总(更新)
- 接口文档编写步骤与格式
- c++调节控制台字体(c++入门练习)
- 越来越卷,教你使用Python实现卷积神经网络(CNN)
- virtualbox kali linux 安装小米随身wifi
- 【ICCV19 超分辨】Deep SR-ITM: Joint Learning of Super-Resolution and Inverse Tone-Mapping for 4K UHD HDR
- Xmind8Update7安装与Xmind8Update7破解
- ERPNext关键业务流程
- 希尔排序原理和算法图解