mysql日期函数

mysql之零碎知识

泪湿孤枕 提交于 2020-03-18 23:33:53
一 视图  什么是视图:视图就是一张虚拟表。方便查看。  创建视图:create view 起名 as sql语句 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 | | 3 | 刘海燕老师 | | 4 | 朱云海老师 | | 5 | 李杰老师 | +-----+-----------------+ 5 rows in set (0.00 sec) #查询李平老师教授的课程名 mysql> select cname from course where teacher_id = (select tid from

MySQL数据类型--日期时间

流过昼夜 提交于 2020-03-16 19:41:19
作者: 壹叶随风 一、博客前言   自接触学习MySQL已有一段时间了,对于MySQL的基础知识还是有一定的了解的。在这一路学习过来,每次不管看书还是网上看的资料,对于MySQL数据类型中的时间日期类型总是一扫而过,不曾停下来认认真真的研究学习。最近在图书馆借了一本关于MysQL的书籍,打算全面的学习研究一遍。   在之前,我对于时间日期数据类型不怎么感冒,也没怎么用过这一类型。在我的做项目里用到存贮时间的数据,我都是采用int整型数据类型来存储,即是存储时间戳。但是在后面学习MySQL优化的时候,就有一个原则就是存储数据时应采用最小占用空间的数据类型。int类型是4个字节,TIMESTAMP也是4个字节,但是在需要使用日期时,时间戳还需要进一步转换,而TIMESTAMP类型数据就不需要了。   所以说认真学习了解每一个知识点是必要的! 二、时间日期数据类型总概况   MySQL中有多种表示时间日期的数据类型,主要有YEAR、TIME、DATE、DATETIME、TIMESTAMP等。每一种数据类型都有存储的时间日期格式、以及取值范围,因此在使用时间日期数据类型的时候需要选取最佳的数据类型。 下图列出了几种数据类型: 三、细讲 1、YEAR   year用于存储年,存储时只需要一个字节,插入数据时可以使用各种格式指定YEAR值。 常见的插入格式解析:   a、四位字符串或者数字格式

格式化MYSQL时间戳函数FROM_UNIXTIME

天涯浪子 提交于 2020-03-16 10:34:12
函数:FROM_UNIXTIME 作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。 语法: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。 下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟, 数字(00……59) %r 时间,12 小时(hh:mm:ss [AP]M) %T 时间,24 小时(hh

格式化MYSQL时间戳函数FROM_UNIXTIME

和自甴很熟 提交于 2020-03-16 10:32:01
对MYSQL没有进行过深入的研究,基础知识匮乏,一遇到问题只能手册,看来要把MYSQL的学习安排进时间表了。 函数:FROM_UNIXTIME 作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。 语法: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。 下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟

SQL Server,MySQL,Oracle三者的区别

僤鯓⒐⒋嵵緔 提交于 2020-03-13 07:28:39
SQL Server,MySQL,Oracle三者的区别 Oracle Oracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计 算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。 Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与 IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。 Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上 不同的大、中、小型机上;可在VMS、DOS、UNIX、WINDOWS等多种操作系统下工作。能与多种通讯网络相连,支持各种协议(TCP/IP、 DECnet、LU6.2等)。提供了多种开发工具

MySQL数据类型--日期时间

折月煮酒 提交于 2020-03-13 00:55:13
一、博客前言   自接触学习MySQL已有一段时间了,对于MySQL的基础知识还是有一定的了解的。在这一路学习过来,每次不管看书还是网上看的资料,对于MySQL数据类型中的时间日期类型总是一扫而过,不曾停下来认认真真的研究学习。最近在图书馆借了一本关于MysQL的书籍,打算全面的学习研究一遍。   在之前,我对于时间日期数据类型不怎么感冒,也没怎么用过这一类型。在我的做项目里用到存贮时间的数据,我都是采用int整型数据类型来存储,即是存储时间戳。但是在后面学习MySQL优化的时候,就有一个原则就是存储数据时应采用最小占用空间的数据类型。int类型是4个字节,TIMESTAMP也是4个字节,但是在需要使用日期时,时间戳还需要进一步转换,而TIMESTAMP类型数据就不需要了。   所以说认真学习了解每一个知识点是必要的! 二、时间日期数据类型总概况   MySQL中有多种表示时间日期的数据类型,主要有YEAR、TIME、DATE、DATETIME、TIMESTAMP等。每一种数据类型都有存储的时间日期格式、以及取值范围,因此在使用时间日期数据类型的时候需要选取最佳的数据类型。 下图列出了几种数据类型: 三、细讲 1、YEAR   year用于存储年,存储时只需要一个字节,插入数据时可以使用各种格式指定YEAR值。 常见的插入格式解析:   a、四位字符串或者数字格式,范围为“1901

MySQL与Oracle 差异比较之二基本语法

青春壹個敷衍的年華 提交于 2020-03-11 17:59:29
基本语法 编号 类别 ORACLE MYSQL 注释 1 变量的声明方式不同 li_index NUMBER := 0 DECLARE li_index INTEGER DEFAULT 0 1. mysql 使用DECLARE定义局部变量. 定义变量语法为: DECLARE var_name[,...] type [DEFAULT value] 要给变量提供一个默认值,需要包含一个DEFAULT子句。值可以被指定为一个表达式,不需要为一个常数。如果没有DEFAULT子句,初始值为NULL。 2 变量的赋值方式不同 lv_inputstr := iv_inputstr SET lv_inputstr = iv_inputstr 1. oracle变量赋值使用:= mysql 使用赋值使用set关键字. 将一个值赋给一个变量时使用"=". 3 跳出(退出)语句不同 EXIT; LEAVE procedure name; 1. oracle: 如果exit语句在循环中就退出当前循环.如果exit语句不再循环中,就退出当前过程或方法. Mysql: 如果leave语句后面跟的是存储过程名,则退出当前存储过程. 如果leave语句后面跟的是lable名. 则退出当前lable. while 条件 loop exit; end loop; label_name:while 条件 do

复习(六)---mysql自带函数

你。 提交于 2020-03-08 01:13:48
数学函数 1. 绝对值函数ABS()和PI()函数 : SELECT ABS(2), ABS(-13), PI(); 2. 平方根函数SQRT()跟取模函数MOD(x,y) x为被除数,y为除数: SELECT SQRT(9), MOD(2,9); 3. CEIL(X) 或 CEILING(X) 返回不小于x的最小整数值,返回值是BIGINT。FLOOR(X) ,不大于x的最大整数值 4. RAND(x), 返回[0,1]区间的随机值,参数x如果指定,则用作种子值,产生重复序列 5. ROUND(X):最接近x的整数。ROUND(X,y) :对x四舍五入,保留小数点后面y位。如果y为负,小数点左边相应位数为0。 6. TRUNCATE(x,y) 保留x小数点后面 y位。如果y位0,只保留整数部分。如果y为负,截去x小数点左边ABS(y)位后面的值,并将整数部分ABS(y)为数字置零。 7. SIGN(x):返回x的符号 负、零、正 分别对应 -1、0、1 8. 幂运算函数:POW(x,y), POWER(x,y); x的y次幂,EXP(x) e 为底的x次幂 9. LOG(x),x的自然对数。LOG(X,Y),x为底,y的对数 。LOG10(x),10为底,x的对数。 字符串函数 1. CHAR_LENGTH(str1) 2. CONCAT(str2,str3,...)

MySQL 查询时间段内的数据

半城伤御伤魂 提交于 2020-03-07 08:03:48
先来建表语句: SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for t_user -- ---------------------------- DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `userId` bigint(20) NOT NULL, `fullName` varchar(64) NOT NULL, `userType` varchar(16) NOT NULL, `addedTime` datetime NOT NULL, PRIMARY KEY (`userId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of t_user -- ---------------------------- INSERT INTO `t_user` VALUES ('1', '爽爽', '普通', '2018-01-21 10:20:09'); INSERT INTO `t_user` VALUES ('2', '贵贵', '普通', '2017-11-06 10:20:22');

MySQL 获取某个时间段每一天、每一个小时的统计数据

浪尽此生 提交于 2020-03-07 08:03:20
获取每一天的统计数据 做项目的时候需要统对项目日志做分析,其中有一个需求是获取某个给定的时间段内,每一天的日志数据,比如说要获取从2018-02-02 09:18:36到2018-03-05 23:18:36这个时间段内,统计出每一天的日志数据,一般情况下,看到这种需求都是考虑使用函数来搞定,直接上sql语句 SELECT DATE_FORMAT(trigger_time, '%Y-%m-%d') triggerDay, COUNT(id) triggerCount FROM `job_qrtz_trigger_log` WHERE trigger_time BETWEEN '2018-02-02 09:18:36' AND '2018-03-05 23:18:36' GROUP BY triggerDay ORDER BY trigger_time; 对上面的sql做简单的解释 首先,查询字段这里,COUNT(id) triggerCount是我们需要的统计数据的条数,按照实际需求可以添加需要的字段。 DATE_FORMAT(trigger_time, '%Y-%m-%d') triggerDay 这个是将特定日期格式化成 YYYY-mm-dd 格式的日期。这里的格式用于后面的分组,所以按照不同的需求,可以自定义格式。 我的需求是获取每一天的日志数据,我就按照 年份-月份-日期