mysql时间函数

mysql中使用date_add()函数

匿名 (未验证) 提交于 2019-12-02 22:06:11
date_add()常常用户在mysql的sql中实现对日期类型的操作,比如增加或者减少,但是不改变原来的数据,只是对查询的数据做处理,这里展示使用示例: DATE_ADD(date,INTERVAL expr unit) //说明;其中 date表示时间字段或者时间类型 interval是固定标志,expr 表示数量,可以为正负,表示加减,unit表示日期类型 可以是yy,ww,dd等分别表示,年,周,天等,具体示例如下: // 得到当前时间增加1个小时的结果 select date_add(now(),interval 1 hour) // 得到当前时间增加1天的结果 select date_add(now(),interval 1 day) // 得到当前时间减少72个小时的结果 select date_add(now(),interval -72 hour) // 还有一些更加高级的用法,比如增加一天一小时一分一秒 // 但是如果你不太喜欢这种用法,你仍然可以使用等同于该数值的second来进行加减 date_add(now(),interval '1 1:1:1' day_second) 来源:51CTO 作者: yojofly 链接:https://blog.csdn.net/yojofly/article/details/100083016

Mysql2:数据类型

家住魔仙堡 提交于 2019-12-02 22:05:01
Mysql支持多种数据类型,主要有数值类型、日期/时间类型、字符串类型。 1)数值数据类型:整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT         浮点小数数据类型FLOAT、DOUBLE          定点小数类型DECIMAL 2)日期/时间类型:YEAR、TIME、DATE、DATETIME、TIMESTAMP 3)字符串类型:CHAR、VARCHAR、BINARY、VARBINARY、TEXT、ENUM、SET等。字符串类型又分为文本字符串和二进制字符串。 整数类型        不同类型整数存储所需的字节数不同,根据占用字节数可以求出每一种数据类型的取值范围,例如TINYINT需要1个字节(8bits)存储,那么它的无符号的最大值为2**8 -1 即255;有符号最大值为 2**7 -1= 127.   下表是不同数据类型的取值范围            添加数据表时的数据类型int(11)中,11表示该数据类型指定的显示宽度,指定能够显示的数值中数字的个数。   显示宽度和数据类型的取值范围无关。显示宽带只是知名Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入,能够显示出来。   定义表结构时,如果不指定显示宽度

MySQL 获得 当前日期时间 函数

匿名 (未验证) 提交于 2019-12-02 22:02:20
mysql> select now(); 输出 2019-07-26 15:43:34 例子 mysql> select now(), sleep(3), now(); +---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 | +---------------------+----------+---------------------+ 参考: https://www.cnblogs.com/php12-cn/p/8882221.html

Mysql 查询日期格式化 DATE_FORMAT()

匿名 (未验证) 提交于 2019-12-02 22:02:20
之前我一直使用oracle,习惯了oracle的语法格式,现在换成mysql有些地方是有区别的,我在查询时间进行格式化的时候就发现问题了,现在在这做个记录 一般在oracle中利用 to_char或者to_date() Oracle to_char 函数的功能是将数值型或者日期型转化为字符型: eg: mysql 中使用 DATE_FORMAT: 文章来源: https://blog.csdn.net/zkk1973/article/details/97259613

mysql常用函数

匿名 (未验证) 提交于 2019-12-02 22:02:20
以后项目课再演示!!! #ifnull(exp1,exp2) 如果为空 #if(exp1,exp2,exp3) 一、数学函数: #ABS 绝对值函数 select abs(-5) ; select ceil(-13.5); #FLOOR(X)小于x的最大整数 select FLOOR(3.5); #返回集合中最大的值,least返回最小的,注意跟max,min不一样,max里面跟的是col,返回这个列的最大值最小值 select GREATEST(1,2,3,4); #mod(x,y)返回x/y的余数 select mod(5,2); #pi() 返回pi select pi(); #RAND()返回0,1之间随机数 select rand(); #round(x,y)返回x四舍五入有y位小数的值 select round(pi(),3); #truncate(x,y) 返回数字x截断为y位小数的结果,就是不考虑四舍五入,直接砍掉 select TRUNCATE(pi(),4),ROUND(pi(),4),pi(); #sign(x) 返回x符号 select sign(-5); 二、聚合函数(常用语group by从句select语句中) #avg(col)返回指定列平均值 select AVG( quantity) from orderitems; #count(col

mysql 表分区、按时间函数分区、删除分区、自动添加表分区

匿名 (未验证) 提交于 2019-12-02 22:02:20
mysql 表分区的几种方式: RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。 LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。 HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL中有效的、产生非负整数值的任何表达式。 KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。 常用的按时间分区可以按照年、月、日等条件用来分区,因为是按时间条件分区所以选用RANGE分区方式。 分区的切条件判断: LESS THAN:如果是数值就是小于等于,时间则是小于。 LESS THAN MAX:不等于。 IN:包含于某某区间。 按实际分区的时间函数选用: 按日分区切分时的条件可以用day()、to_days()时间函数,需要注意的是必须是返回值是整形的。 按月分区采用month()时间函数; 其他条件分区时间函数可到我关于时间函数的博文查看: https://blog.csdn.net/qq_36216193/article/details/90404527 其中按时间字段create_date按天分区,首先需要把date字段改成主键

MySQL 中的日期时间类型

匿名 (未验证) 提交于 2019-12-02 21:59:42
原文: MySQL 中的日期时间类型 日期时间类型中包含以下几种数据类型: DATE TIME DATETIME TIMESTAMP YEAR 各类型都有具体的取值范围,超出或非法的其他值时,MySQL 会回退到 0。TIMESTAMP 类型是个例外,给它设置一个超出范围的值时,将保存上该类型允许的最大值。 MySQL 按标准格式 YYYY-MM-DD hh:mm:ss[.fraction] 输出日期时间,但设置或进行日期时间相关的比较时却支持灵活的多种格式,会自动解析。具体支持的输入格式可参见 Section 9.1.3, “Date and Time Literals” 。其中 fraction 部分为秒后面的小数部分,取值范围为 0~6 位。 虽然 MySQL 支持多种格式进行日期时间的设置,但日期部分要求必须是 年-月-日 的形式才能正确解析。比如 98-09-04 是按年月日顺序解析的,而不是英文里常用的月日年,或者日月年。 年在只给了两位数的情况下,MySQL 尝试使用以下规则来补全: 给定的两位数为 70~99 时解析成 1970 ~ 1999。 给定为 00 ~ 69 时解析成 2000 ~ 2069。 所以,为了避免不可预测的结果,使用时还是指定全一些。 在需要使用数字的语境下,MySQL 会将日期时间自动转成数字。同理,在需要日期时间的相关操作语境下

MySQL进阶

匿名 (未验证) 提交于 2019-12-02 21:59:42
索引 1、概述 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。 建立索引会占用磁盘空间的索引文件。 2、索引种类 普通索引:仅加速查询 唯一索引:加速查询 + 列值唯一(可以有null) 主键索引:加速查询 + 列值唯一 + 表中只有一个(不可以有null) 组合索引:多列值组成一个索引, 索引合并:使用多个单列索引组合查询搜索 覆盖索引:select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖 a、普通索引 普通索引仅有一个功能:加速查询 create table in1( nid int not null auto_increment primary key, name varchar(32) not null, email varchar(64) not null, extra text, index ix_name (name) ) 创建表+索引 create index index_name on table_name(column_name) 创建索引 drop index_name on table_name;

Mysql中使用函数处理时间

匿名 (未验证) 提交于 2019-12-02 21:59:42
Mysql时间加减函数为date_add()、date_sub() 定义和用法 DATE_ADD()函数向日期添加指定的时间间隔。 DATE_SUB()函数向日期减少指定的时间间隔。 语法 DATE_ADD(date,INTERVAL expr type) DATE_SUB(date,INTERVAL expr type) date 参数是合法的日期表达式。 expr 参数是您希望添加的时间间隔。 type 参数可以是下列值: Type ֵ MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH 1. MySQL为日期增加一个时间间隔:date_add() set @dt = now(); select date_add( @dt , interval 1 day ); - 加1天 select date_add( @dt , interval 1 hour); - 加1小时 select date_add( @dt ,

解决mysql 1040错误Too many connections的方法

孤街浪徒 提交于 2019-12-02 21:48:56
从官方文档知道linux上面编译安装的mysql默认的连接为100个,这样对于网站的需求来说是远远不够的。 mysql官方告诉我们需要修改max_connections的值,那么我们怎么去修改呢?有两种方法 1、修改配置文件文件 修改/etc/my.cnf这个文件,在[mysqld]中新增max_connections=N,如果你没有这个文件请从编译源码中的support-files文件夹中复制你所需要的*.cnf文件为到/etc/my.cnf。我使用的是my-medium.cnf,中型服务器配置。例如我的[mysqld]的内容如下 代码如下: [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 160M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M max_connections=1000 由于对mysql还不是很熟悉,所以很多参数没有修改。哈哈。。 2、非使用mysqld脚本自动启动的用户。 修改