mysql创建时间字段6_mysql 时间字段介绍

mysql时间类型大概有5种,如下图

ab7fbcd7409360c8222ca35ad7d2f641.png

1、创建数据库

create table t1 (

id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

d1_data date,

d2_time time,

d3_datatime datetime,

d4_year year,

d5_timestamp TIMESTAMP

);

字符串方式插入

INSERT INTO t1 (d1_data,d2_time,d3_datatime,d4_year,d5_timestamp) VALUES(NOW(),NOW(),NOW(),NOW(),NOW());

mysql> select * from t1 where id=1\G

*************************** 1. row ***************************

id: 1

d1_data: 2018-06-15

d2_time: 13:50:25

d3_datatime: 2018-06-15 13:50:25

d4_year: 2018

d5_timestamp: 2018-06-15 13:50:25

1 row in set (0.00 sec)

INSERT INTO t1 (d1_data,d2_time,d3_datatime,d4_year,d5_timestamp) VALUES(‘2018-06-15‘,‘13:50:25‘,‘2018-06-15 13:50:25‘,‘2018‘,‘2018-06-15 13:50:25‘);

mysql> select * from t1 where id=2\G

*************************** 1. row ***************************

id: 2

d1_data: 2018-06-15

d2_time: 13:50:25

d3_datatime: 2018-06-15 13:50:25

d4_year: 2018

d5_timestamp: 2018-06-15 13:50:25

1 row in set (0.00 sec)

1.1、date (数字插入)

mysql> help DATE

A date. The supported range is ‘1000-01-01‘ to ‘9999-12-31‘. MySQL

displays DATE values in ‘YYYY-MM-DD‘ format, but permits assignment of

values to DATE columns using either strings or numbers.

插入时候可以是字符串或者数字

20180615

‘2018-06-15‘

1.2、time (数字插入)

mysql> help TIME

A time. The range is ‘-838:59:59.000000‘ to ‘838:59:59.000000‘. MySQL

displays TIME values in ‘HH:MM:SS[.fraction]‘ format, but permits

assignment of values to TIME columns using either strings or numbers.

An optional fsp value in the range from 0 to 6 may be given to specify

fractional seconds precision. A value of 0 signifies that there is no

fractional part. If omitted, the default precision is 0.

mysql> INSERT INTO t1 (d1_data,d2_time,d3_datatime,d4_year,d5_timestamp) VALUES(20180515,135025,‘2018-06-15 13:50:25‘,‘2018‘,‘2018-06-15 13:50:25‘);

Query OK, 1 row affected (0.00 sec)

mysql> select * from t1 where id=4\G

*************************** 1. row ***************************

id: 4

d1_data: 2018-05-15

d2_time: 13:50:25

d3_datatime: 2018-06-15 13:50:25

d4_year: 2018

d5_timestamp: 2018-06-15 13:50:25

1 row in set (0.00 sec)

1.3、 DATETIME (数字插入)

mysql> help DATETIME

A date and time combination. The supported range is ‘1000-01-01

00:00:00.000000‘ to ‘9999-12-31 23:59:59.999999‘. MySQL displays

DATETIME values in ‘YYYY-MM-DD HH:MM:SS[.fraction]‘ format, but permits

assignment of values to DATETIME columns using either strings or

numbers.

An optional fsp value in the range from 0 to 6 may be given to specify

fractional seconds precision. A value of 0 signifies that there is no

fractional part. If omitted, the default precision is 0.

Automatic initialization and updating to the current date and time for

DATETIME columns can be specified using DEFAULT and ON UPDATE column

definition clauses, as described in

http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html.

20180615135025

‘2018-06-15 13:50:25‘

存储的是字符串

mysql> INSERT INTO t1 (d1_data,d2_time,d3_datatime,d4_year,d5_timestamp) VALUES(20180515,135025,20180615135025,‘2018‘,‘2018-06-15 13:50:25‘);

Query OK, 1 row affected (0.01 sec)

mysql> select * from t1 where id=5\G

*************************** 1. row ***************************

id: 5

d1_data: 2018-05-15

d2_time: 13:50:25

d3_datatime: 2018-06-15 13:50:25

d4_year: 2018

d5_timestamp: 2018-06-15 13:50:25

1 row in set (0.00 sec)

1.4、 year

mysql> help year

Returns the year for date, in the range 1000 to 9999, or 0 for the

"zero" date.

1.5、 timestamp (数字插入)

mysql> help timestamp

A timestamp. The range is ‘1970-01-01 00:00:01.000000‘ UTC to

‘2038-01-19 03:14:07.999999‘ UTC. TIMESTAMP values are stored as the

number of seconds since the epoch (‘1970-01-01 00:00:00‘ UTC). A

TIMESTAMP cannot represent the value ‘1970-01-01 00:00:00‘ because that

is equivalent to 0 seconds from the epoch and the value 0 is reserved

for representing ‘0000-00-00 00:00:00‘, the "zero" TIMESTAMP value.

存储的是时间戳

mysql> INSERT INTO t1 (d1_data,d2_time,d3_datatime,d4_year,d5_timestamp) VALUES(20180515,135025,20180615135025,‘2018‘,20180615135025);

Query OK, 1 row affected (0.01 sec)

总结

以上说明 在插入或者更新时候,值可以是 ‘2018-06-06‘ 时间类型字符串 也可以是 20180606 数字,都会经过mysql函数处理存入

100w条数据 比较datatime跟timestamp效率

2、 准备100w条数据

drop PROCEDURE autoinsert;

DELIMITER $$

create PROCEDURE autoinsert()

BEGIN

DECLARE i int DEFAULT 1;

DECLARE mytime varchar(19) ;

WHILE (i<1000000) DO

set mytime=date_add(now(),interval i second);

INSERT into t1 (d1_data,d2_time,d3_datatime,d4_year,d5_timestamp) VALUES (mytime,mytime,mytime,date_add(now(),interval i second),mytime);

set i=i+1;

END WHILE ;

END $$

DELIMITER ;

CALL autoinsert();

d2f8f5ee2d1f81957dde3bbfc60e2907.png

2.1、datetime 分析:

没有索引情况下:

d1ad7f0a2e9b05eca213b063e4011f32.png

21775f940509ed245176fc1ad2593ef1.png

大概需要0.22s

添加索引

mysql> alter table t1 add key (d3_datatime);

2bbb34d88eab9bd7772283b5edf413a2.png

caffeb3846759e7dd14957d2a0904281.png

2.2、timestamp分析

没有索引情况下:

380a0db351ff4912b386fb2aad8d8184.png

344955c514727c176c1bf44e65fb7c4b.png

需要0.4s左右

添加索引情况后:

ALTER TABLE `t1` add key (d5_timestamp);

c066f841b7d5abe09ae42fa77fe80f07.png

091f45b3d86b9aa0c48b98160bb10db0.png

100w条数据的理论,datetime比timestamp更快点,底层比较应该都是数字,timestamp可能在时间转换上消耗更好点吧,在加上索引情况下是没有区别的,从空间上考虑datetime需要8个字节,而timestamp只要4个字节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python课设代码_python课程编程题汇总(上)

python编程题汇总众所周知&#xff0c;由于疫情的原因&#xff0c;大家都在上网课&#xff0c;我也不例外啦~用这个贴子来记录也和大家分享一下我们课上的编程讨论题中篇在此→python课程编程题汇总(中)下篇在此→python课程编程题汇总(下)1、货币转换编写货币转换程序描述&…

安装Python 3.6 在Ubuntu 16.04 LTS 版本

在ubuntu 16.04版本中&#xff0c;系统默认安装 了python 2.7和3.5版本&#xff0c;因为系统本身用到python的程序&#xff0c;删除默认的版本又担心系统有问题&#xff0c;那有没有办法同时在安装和使用python 3.6版本呢&#xff1f;下文将一起安装python 3.6并修改原系统的py…

matlab动画_弹簧振子振动的matlab动画演示

用Matlab阐述物理中的胡克定律&#xff0c;为弹簧振子震动的matlab动画示意图&#xff0c;另有一个为不同质量不同弹簧系数的比较。spring.m,compare.mrectangle(position,[12,8.5,2,0.3],FaceColor,[0.5,0.3,0.4]); axis([0,15,-1,10]); hold on plot([13,13],[7,8.5],r,li…

svn合并分支到主干_谈谈代码分支管理

前言从2019年上半年云音乐的客户端团队开始迁移到双周迭代后&#xff0c;随之而来的是我们需要重新调整代码分支的管理方法&#xff0c;来应对开发流程的变更。双周迭代顾名思义一周开发一周测试&#xff0c;目的就是为了快速交付。纵观整个开发流程&#xff0c;我们需要在两周…

ctf实验平台-成绩单

题目链接&#xff1a;http://120.24.86.145:8002/chengjidan/ 平台地址&#xff1a;http://123.206.31.85/ 第一步&#xff1a;暴库 id-1 union select 1,2,3,group_concat(schema_name) from information_schema.schemata# 第二步&#xff1a;爆表 id-1 union select 1,2,3,ta…

python 扫描仪_玩《Minecraft我的世界》学python编程,可领|取电子学习版本

为何选择学习pythonpython是一种解释型、面向对象、动态数据类型的高级程序设计语言&#xff0c;它具有丰富和强大的库&#xff0c;能够把其它语言&#xff08;尤其是c&#xff09;制作的各种模块很轻松地联结在一起。pyton在编程语言排行榜中高居首位。[求抱抱]编程听起来很高…

python识别虚假新闻的分类器_使用NLP检测和对抗AI生成的假新闻

作者|MOHD SANAD ZAKI RIZVI编译|VK来源|Analytics Vidhya概述由AI生成的假新闻(神经假新闻)对于我们的社会可能是一个巨大的问题本文讨论了不同的自然语言处理方法&#xff0c;以开发出对神经假新闻的强大防御&#xff0c;包括使用GPT-2检测器模型和Grover(AllenNLP)每位数据科…

vue中使用导出表格功能

1.下载依赖 npm install -S file-saver xlsxnpm install -D script-loader 2.在src下创建vendor文件夹&#xff0c;并在文件夹中放两个文件 Blob.js (function (view) {"use strict";view.URL view.URL || view.webkitURL;if (view.Blob && view.URL) {try …

adb shell 书籍_开发必备---你应该知道的一些 ADB 命令

版权声明&#xff1a;本文为LooperJing原创文章&#xff0c;转载请注明出处&#xff01;一、设备相关1、adb devices显示连接到计算机的设备List of devices attachedbe34d81e device输出格式为 [serialNumber] [state]&#xff0c;state 有如下几种&#xff1a;列名解释nodevi…

Angular Reactive Forms -- Model-Driven Forms响应式表单

Angular 4.x 中有两种表单&#xff1a; Template-Driven Forms - 模板驱动式表单 (类似于 AngularJS 1.x 中的表单 ) 官方文档&#xff1a;https://v2.angular.cn/docs/ts/latest/guide/forms.html Reactive Forms (Model-Driven Forms) - 响应式表单 官方文档&#xff1a; …

python实现守护进程_守护进程原理及Python实现

守护进程原理及Python实现守护进程&#xff0c;不依赖于终端&#xff0c;在后台运行的程序&#xff0c;通常称为daemon(ˈdiːmən或ˈdeɪmən)。一些常见的Linux软件通常都是已守护进程的方式运行&#xff0c;比如&#xff1a;nginxredismemcached守护进程的原理&#xff1a;…

python生成器迭代_二十、深入Python迭代器和生成器

「Author&#xff1a;Runsen」学习python的过程中&#xff0c;迭代器与生成器是绕不开的话题&#xff0c; 什么是迭代器和生成器呢&#xff1f;下面我们来了解一下什么是迭代。但在了解迭代器之前&#xff0c;首先需要知道什么是容器。容器正所谓&#xff1a;一切都是对象&…

批改网禁止粘贴怎么破_重大利好!教育部声明,要求家长批改作业等行为,发现一起严处一起...

前段时间&#xff0c;在江苏一位家长发布短视频&#xff0c;他在视频中怒喊&#xff1a;我就退出家长群怎么了&#xff01;引起网上一阵热议起因是这位家长认为老师总是让家长帮忙批改作业&#xff0c;自己承担了太多教师应负的责任&#xff0c;完了还要昧着良心说老师你辛苦了…

mysql实验步骤_MySQL双方配置实验步骤

实验环境&#xff1a;两台MariaDB服务器&#xff0c;IP分别为&#xff1a; 172.16.2.16 和 172.16.2.17MariaDB的版本是5.5.36&#xff0c;使用二进制方式安装。已安装完成。/mydata/data 数据库文件存放目录/mydata/binlog/ 二进制日志文件存放位置/mydata/relaylog/ 中继日志…

mac 系统安装 eclipse 方法

经过好几天的折腾&#xff0c;终于在各种不靠谱的经验、说明的忽悠中把自己心爱的 mac 安装上了 eclipse&#xff0c;看到别人的不靠谱&#xff0c;我决定自己写一篇经验&#xff0c;为了大家能够不走我这么多的弯路&#xff0c;也为了自己将来可以回来看看&#xff0c;下次安装…

python 检测文件更新失败_依赖错误,检测更新失败,提示这个

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼rickrick-PC:~$ sudo apt-get update && sudo apt-get dist-upgrade -y命中:2 https://store.chinauos.com/appstore eagle InRelease获取:1 http://uos.deepin.cn/uos eagle InRelease [20.1 kB]命中:3 http://uos.deepin…

mysql+nest+嵌套事务_MySQL——事务

事务(Transaction)是数据库区别于文件系统的重要特性之一&#xff0c;事务会把数据库从一种一致状态转换为另一种一致状态。关键词事务四大特性ACIDMySql事务隔离级别MVCC多版本并发控制实现方式运行过程MVCC解决了幻读&#xff1f;InnoDB解决幻读的方式事务的分类扁平事务Flat…

谈谈写程序与学英语(转载)

注: 本文的作者是宋劲杉&#xff0c;原文链接。 俗话说&#xff0c;没有金刚钻&#xff0c;就别揽瓷器活儿。套用到IT业&#xff0c;英语不行&#xff0c;就别做程序员。网上关于程序员学英语的文章不少&#xff0c;但我想谈谈我自己的看法。首先详细讨论一下为什么程序员离了英…

python 取日期_python取出所有的日期

python取出所有的日期>>> s "2020-09-09 we have a meeting">>> re.findall([0-9]{4}-[0-9]{2}-[0-9]{2},s)日期的比较2020-09-092020-09-10比较两个日期大小def compare_date(date1,date2) :#取出年&#xff0c;如果同一年#取出月&#xff0c;如…

python自动化和教程_《手把手教你》系列练习篇之2-python+ selenium自动化测试(详细教程)...

1. 简介今天我们还是继续练习练习基本功&#xff0c;各位小伙伴要耐住住性子&#xff0c;要耐得住寂寞啊&#xff0c;不要急躁&#xff0c;后面你会感谢你在前边的不断练习的。到后面也是检验你前边的学习成果的一次很好实践。本文介绍如何通过link text、partial link text、c…