mysql时间函数

MYSQL-常见函数

家住魔仙堡 提交于 2020-02-19 00:57:29
常用函数 数学运算 绝对值: abs(-8) ,-8的绝对值8 向上取整: ceiling(9.4) ,9.4向上取整10 向下取整: floor(9.4) ,9.4向下取整9 返回随机数: rand() ,返回一个0~1之间的随机数 返回一个数的符号: sign(数值) ,0返回0,负数返回-1,整数返回1 字符串函数 字符串长度: char_length(字符串) ,返回指定字符串的长度。 合并字符串: concat(字符串1,字符串2,...,字符串n) ,返回从左到右按顺序拼接后的字符串。 转小写: lower(字符串) ,将指定字符中的字母全部转小写。 转大写: upper(字符串) ,将指定字符中的字母全部转大写。 查找字符: instr(字符串,子串) ,返回字符串中第一次出现子串的索引。 替换字符串: replace(字符串,被替代字符串,替代字符串) ,替换出现的指定字符串。 截取字符串: substr(原字符串,截取起始数位,截取长度) ,返回指定的字符串(不写截取长度就截取到末尾)。 反转字符: reverse(字符串) ,反转指定字符串。 时间和日期 获取当前日期: current_date()或者curdate() ,获取当前的日期 2020-2-16。 获取当前时间 : now() ,获取当前时间 2020-2-16- 17:26:45。 本地时间:

MySQL---二进制日志

泄露秘密 提交于 2020-02-18 06:42:37
mysql---二进制日志 记录了所有对MySQL数据库的修改事件,包括增删改查事件和对表结构的修改事件 二进制日志的开启 #是否启用了日志 mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+ [mysqld] log-bin [=DIR \ [filename]] log_bin=mysql-bin 名字可以随便起(mysql-bin) 格式 binlog_format={STATEMENT|ROW|MIXED} 语句(statement):默认的记录格式,基于段 行(row):定义的并非数据本身而是这一行的数据是什么 混合模式(mixed):交替使用行和语句、由mysql服务器自行判断 基于段的日志格式 优点 日志记录量相对较小,节约磁盘及网络IO 只对一条记录修改或者插入,row格式所产生的日志量小于段产生的日志量 缺点 必须要记录上下文信息,保证语句在从服务器上执行结果与主服务器相同 特定函数如UUID(),user()这样非确定性函数还是无法复制;可能造成MySQL复制的主备服务器数据不一致 操作 mysql

学习笔记--《MySQL必知必会》--第十一章

巧了我就是萌 提交于 2020-02-16 01:31:34
第十一章 使用数据处理函数 文本处理函数 函 数 说 明 Left() 返回串左边的字符 Length() 返回串的长度 Locate() 找出串的一个字串 Lower() 将串转换为小写 LTrim() 去掉串左边的空格 Right() 返回串右边的字符 RTrim() 去掉串右边的空格 Soundex() 返回串的SOUNDEX值 SubString() 返回字串的字符 Upper() 将串转换为大写 SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法 日期和时间处理函数 函 数 说 明 AddDate() 增加一个日期(天、周等) AddTime() 增加一个时间(时、分等) CurDate() 返回当前日期 CurTime() 返回当前时间 Date() 返回日期时间的日期部分 DateDiff() 计算两个日期之差 Date_Add() 高度灵活的日期运算函数 Date_Format() 返回一个格式化的日期或时间串 Day() 返回一个日期的天数部分 DayOfWeek() 对于一个日期,返回对应的星期几 Hour() 返回一个时间的小时部分 Minute() 返回一个时间的分钟部分 Month() 返回一个日期的月份部分 Now() 返回当前日期和时间 Second() 返回一个时间的秒部分 Time() 返回一个日期时间的时间部分 Year()

mysql语法------7--日期函数

最后都变了- 提交于 2020-02-13 09:38:29
#日期函数 #NOW()返回系统当前日期+时间 select NOW() out_put;--结果:2020-02-13 08:38:18 #CURDATE()返回系统当前日期,不包含时间 select CURDATE() out_put;--结果:2020-02-13 #CURTIME()返回当前时间,不包含日期 select CURTIME() out_put;--结果:08:41:09 #可以获取指定的部分,年,月,小时,分钟,秒 select year(NOW()) out_put;--结果:2020 SELECT YEAR('1998-01-01') out_put;--结果:1998 select MONTH(NOW());--结果:2 select MONTHNAME(NOW());--结果:February 同样表示的是2月 #STR_TO_DATE(str,format)将指定的字符串转换成日期格式 select STR_TO_DATE('1998-1-2','%Y-%c-%d');--结果:1998-01-02 #DATE_FORMAT(date,format)将日期转换成字符串 select DATE_FORMAT(NOW(),'%y年%m月%d日') as out_put;--结果:20年02月13日 来源: https://www.cnblogs.com

mysql对时间函数的处理 [转帖]

断了今生、忘了曾经 提交于 2020-02-12 15:40:53
昨天计费系统故障.电话挂断后TG给软件换发的消息bye丢失,造成homeserver一直等待直到超时;结果造成大量超长话单的产生。定位了一下午,后来才得知是TG的licence到期了,间断的停止服务。这时候需要处理对用户已经造成的损失。制订了以下方案: step1:退回已经扣除的巨额话费; step2:修正用户话单的结束时间和时长,重新计费 step3:对由此影响到的冻结用户解冻。 step4:向用户致谦 在step2的时候我使用了如下方式: update account_tbl set acct_timestamp=begin_timestamp+62,acct_timeduration=62 where acct_timeduration=10800; 想当然得认为是正确的,结果发现所有大话单的结束时间并没有修正到我预期的开始时间后延62s,而是变成'0000-00-00 00:00:00',这样奇怪的日期型在前台 表现层转换的时候引发异常所以读不出话单来。后来查找了mysql对时间的运算方式,发现我的方法acct_timestamp=begin_timestamp+62不 符合 mysql的语法 习惯。于是把关于时间处理的函数统计了一下。以下是收集到的资料: 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql>

[收藏]Mysql日期和时间函数

自作多情 提交于 2020-02-12 15:40:02
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。 mysql> select DAYOFWEEK('1998-02-03'); -> 3 WEEKDAY(date) 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 mysql> select WEEKDAY('1997-10-04 22:23:00'); -> 5 mysql> select WEEKDAY('1997-11-05'); -> 2 DAYOFMONTH(date) 返回date的月份中日期,在1到31范围内。 mysql> select DAYOFMONTH('1998-02-03'); -> 3 DAYOFYEAR(date) 返回date在一年中的日数, 在1到366范围内。 mysql> select DAYOFYEAR('1998-02-03')

Mysql 基础(三)排序查询及常用函数

冷暖自知 提交于 2020-02-10 18:20:06
Mysql基础(三) 进阶三: 排序查询: 语法: select 查询列表 from 表 【where 筛选条件】 order by 排序的字段|表达式|函数|别名 【asc|desc】 特点: ​ 1、asc代表的是升序,desc代表的是降序,如果不写,默认是升序 ​ 2、order by 子句中可以支持多个字段,多个字段、表达式、函数、别名 ​ 3、order by 子句一般是放在查询语句的最后面,limit子句除外 语句执行顺序是: ​ 1、from 表 2、where 筛选条件、3、select 查询、4、order by 排序 #案例一:查询员工信息,要求工从高到低排序 SELECT * FROM employees ORDER BY salary DESC; #如果不写 ASC 或DESC,默认是升序 SELECT * FROM employees ORDER BY salary; #案例二【添加筛选条件】:查询部门编号>=90的员工信息,按入职时间的先后排序 SELECT * FROM employees WHERE department_id>=90 ORDER BY hiredate ASC; #案例三【按表达式排序】:按年薪的高低显示员工的信息和年薪 SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM

PHP全栈学习笔记28

Deadly 提交于 2020-02-08 03:56:02
数据库Mysql概述,数据库操作,数据表操作,数据类型,管理数据库 order by asc; 升序 desc 降序 sql标准语言: 数据查询语言 select 数据定义语言 create/alter/drop 数据操作语言 insert delete update 数据控制语言 grant revoke 为用户赋予特权,收回特权 mysql支持的数据类型为主要为3类: 数字类型,字符串类型,日期和时间类型。 数字类型分整数型和浮点型两种: 整数数据类型: tinyint bit bool smallint mediumint int bigint 浮点数据类型: float, double, decimal 字符串类型: char varchar, text blob, set enum, 日期和时间数据类型: date time datetime timestamp year php数据库编程 mysql_connect()函数连接mysql服务器 <?php $conn = mysql_connect("localhost", "root", "root") or die("连接失败".mysql_error()); ?> mysql_select_db()函数选择mysql数据库 <?php $conn = mysql_connect("localhost","root"

MySQL学习笔记——〇四

妖精的绣舞 提交于 2020-02-06 01:15:42
今天我们继续对MySQL内容进行一些补充,但是今天所讲的内容已经不是平时常用的了。 先穿插一条指令贯穿了今天所讲的所有知识点: MySQL结束符 结束符delimiter其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。 但是在今天的知识点中我们经常需要用到begin...end这种结构体,那么在结构体中的sql语句后的分号就不能作为结束符了,我们需要随便设置一个结束符,在结构体结束后再换回分号。 MySQL视图(View) 如果我们在日常进行数据库维护过程中需要一个重复的虚拟表,这个虚拟表的构建过程我们要敲很多次,MySQL给我们提供了一个对齐进行优化的方法_视图(View)。 视图的创建 比方我们今天需要对一个用户表中id>10的用户进行操作,这个操作要重复好多好多次,那么我们就要写好多次这样的代码 select *from (select * from table where id>10) as t; 这个时候,为了提高效率,我们就可以创建一个视图 create view v1 as select * from table where id>10; 这个时候我们只需要调用v1就可以了。 注意:视图是一个虚拟的表,是动态的

【MySql】日期时间

旧城冷巷雨未停 提交于 2020-02-04 08:53:25
【MySql】日期时间 ====================================== 1、查询条件 2、常用函数 ====================================== 有 datetime 类型字段 publish_time 1、查询条件 库中存储 2004-02-04 格式 where DATE(publish_time) = '2004-02-04' 库中存储 08:08:08 格式 where DATE(publish_time) = '08:08:08' 库中存储 2004-02-04 08:08:08 格式 where TIMESTAMP(publis_time) = '2004-02-04 08:08:08' 2、常用函数 TO_DAYS(NOW()) 返回天数。10天以内的数据 where TO_DAYS(NOW()) - TO_DAYS(publish_time) <= 10 DAYOFWEEK(NOW()) 返回星期索引。1=星期天、2=星期一、3=星期二、4=星期三、5=星期四、6=星期五、7=星期六 WEEKDAY(NOW()) 返回星期索引。0=星期天、1=星期一、2=星期二、3=星期三、4=星期四、5=星期五、6=星期六 DAYOFMONTH(NOW()) 返回月份中日。在1到31范围内 DAYOFYEAR(NOW(