mysql时间函数

mysql的常用内置函数

橙三吉。 提交于 2019-12-06 13:41:31
1.数学类 floor(x) 返回小宇等于x的最小整数 floor(1.5) 返回结果是1 rand() 返回0-1的随机数 取100内的随机数 floor(100*rand()) round(x) 取离x的最近整数(和floor有点类似) 应用场景: 给一组学生生成一个随机的100以内的分数 set score =floor(rand()*100); 字符串类 length(char) 返回字符串的长度 upper(char) 把字符串全部大写 lower(char) 把字符串全部小写 left(char,n) 返回char的左边n个字符(right相反) trim(s) 去掉字符串s开始和结尾处的空格 reverse(s) 将字符串反转 concat("a","b","c") 连接abc 从用户表将姓名全部大写后输出 select upper(name) from user; 读取文件(mysql里读取其他地方的文件) select load_file('/home/test.txt'); 日期时间类 curdate() curtime() 当前日期和当前时间 NOW(),CURRENT_TIMESTAMP() 当前日期和时间组合在一起 UNIX_TIMESTAMP() 以UNIX时间戳的形式返回当前时间 这个一般比较常用,在组合查找的时候 (UNIX_TIMESTAMP(d

mysql获取7天前数据,日期比较

老子叫甜甜 提交于 2019-12-05 21:15:35
select * from news where n_date>unix_timestamp( subdate( now() , interval 7 day ))order by n_click desc N天内记录 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N 今天的记录 where date(时间字段)=date(now()) 或 where to_days(时间字段) = to_days(now()); 查询一周: select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time); 查询一个月: select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time); ---------------------------end------------------------------------------- mysql中long时间的转换 http://blog.sina.com.cn/s/blog_4f925fc30102elfp.html 在开发中,有时候为方便将日期时间以long类型(秒钟)存在数据库

mysql TIMESTAMP(时间戳)详解

你。 提交于 2019-12-05 19:01:35
TIMESTAMP的变体 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数据列刷新 2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP 在创建新记录的时候把这个 字段设置为当前时间,但以后修改时,不再刷新它 3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为0, 以后修改时刷新它 4,TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它 MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期 与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型 *TIMESTAMP列类型* TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。 TIMESTAMP值显示尺寸的格式如下表所示: : +---------------+----------------+ | 列类型    | 显示格式    | | TIMESTAMP(14) |

mysql 中怎么设置默认值为系统日期

99封情书 提交于 2019-12-05 19:00:54
-- 方法一: 由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的。代替的方案是使用TIMESTAMP类型代替DATETIME类型。 TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果有多个TIMESTAMP列,只有第一个自动更新。 自动更新第一个TIMESTAMP列在下列任何条件下发生: 1.列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。 2.列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。) 3.你明确地设定TIMESTAMP列为NULL. 4.除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。 所以把日期类型 选择成timestamp 允许空就可以了 CREATE TABLE test ( uname varchar(50) NOT NULL, updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

MySQL 8.0弃用的部分参数整理

眉间皱痕 提交于 2019-12-05 16:33:32
最近整理了一下MySQL 8.0的自动化安装,其中用到了一个MySQL 5.7版本的自定义配置文件,由于没有对(MySQL 8.0)做针对性修改,导致安装过程中出现了一些错误 其中部分原因就是MySQL 5.7时代的配置在MySQL 8.0不再被支持,同时某些参数不再建议使用,如果继续保留在配置文件中,会导致8.0实例无法启动。 query cache被弃用 MySQL 8.0不在支持query cache,因此query cache相关的参数被移除 1,query_cache_type 2,query_cache_size binlog相关的参数 expire-logs-days: 被binlog_expire_logs_seconds替代,但是MySQL 8.0 下 expire-logs-days尚被支持 如果要管理binlog,参数为:skip-log-bin = 1 查询了一下相关的资料,发现 这篇文章 总结的相对比较全面一点,译文如下: 本文总结了MySQL 8.0第一版中删除的参数和特性。一些参数和特性在MySQL 8.0中被设置为弃用。 其他一些在MySQL 5.7或更早的版本中被设置为弃用,但是在MySQL 8.0中被删除了。 WL#7704:InnoDB: Remove deprecated file format parameters in 8.0

EF Core For MySql查询中使用DateTime.Now作为查询条件的一个小问题

南笙酒味 提交于 2019-12-05 16:22:26
背景 最近一直忙于手上澳洲线上项目的整体迁移和升级的准备工作,导致博客和公众号停更。本周终于艰难的完成了任务,借此机会,总结一下项目中遇到的一些问题。 EF Core一直是我们团队中中小型项目常用的ORM框架,在使用SQL Server作为持久化仓储的场景一下,一直表现还中规中矩。但是在本次项目中,项目使用了MySql作为持久化仓储。为了与EF Core集成,团队使用了 Pomelo.EntityFrameworkCore.MySql 作为EF Core For MySql的扩展。在开发过程中,团队遇到了各种各样在SQL Server场景下没有遇到过的问题,其中最奇怪的,也是隐藏最深的问题,就是将 DateTime.Now 作为查询条件,产生了非预期的结果。 问题场景 本周在项目升级的过程中,客户反馈了一个问题。 在当前系统的Dashboard页面,有一个消息提醒功能,客户可以自定义一些消息,并且指定提醒的日期。客户遇到的问题是通常添加的消息提醒,在指定日期的上午时间段是不会显示,只有在下午时间段才能看到,比如说客户指定2019年10月26号看到一个的消息提醒,但是在10月26日这天早上8:00-12:00这个时间段,系统总是看不到提醒,只有到了下午的时间段才能看到提醒。 PS:这里客户表达的只是个笼统的问题,但问题确实是上午的大部分时间是看不到消息提醒的,但并不是精确到中午12

MySQL日期时间函数大全

僤鯓⒐⒋嵵緔 提交于 2019-12-05 14:46:00
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');   -> 34 MONTH(date)  返回date中的月份数值 mysql> select MONTH('1998-02-03');   -> 2 DAYNAME(date)  返回date是星期几(按英文名返回) mysql> select DAYNAME("1998-02-05");   -> 'Thursday' MONTHNAME

MySql学习笔记一

谁都会走 提交于 2019-12-05 12:26:11
MySql学习笔记一 1.SQL 分类 DDL(Data Definition Language)数据定义语言 DML(Data Manipulation Language)数据操作语言 DQL(Data Query Language)数据查询语言 DCL(Data Control Language)数据控制语言 TCL(Transaction Control Language)事务控制语言 2.常见指令 查看当前所有数据库: show databases 打开指定的库:use 库名 查看当前库的所有表:show tables 查看其它库的所有表:show tables from 库名 创建表:create table 表名( ​ 列名 列类型, ​ 列名 列类型, ​ ...... ); 查看表结构:DESC 表名 查看服务器版本: select version() || mysql --V 查看字符集: Show variables like '%char%' 查看当前用户:Select USER(); 3.DQL(数据查询语言) 3.1基础查询 select 查询列表 from 表名 查询列表可以是:表中字段、常量、表达式、函数 查询的结果是一个虚拟机的表格 3.1.1.常用关键字 3.1.1.1.起别名 as 或者 空格 例如 select 字段名 as a from 表名

Mysql 学习(一)

你离开我真会死。 提交于 2019-12-05 12:00:03
数据库软件: 开源软件: MYSQL 、 mongdb、 redis、mariadb 商业软件:oracle 、db2 、SQL Server(windows) 关系型数据型软件 mysql mariadb 要按照一定组织结构存储数据,并且数据和数据之间可以互相管理操作。 非关系型数据库软件(NoSQL)mongdb 、redis 、memcached key = 值 MySQL 的特点及应用: 主要特点:–适用于中小规模、关系型数据系统 —Linux/Unix、Windows等多种操作系统 —使用C和C++编写,可移植强 —通过API支持Python/Java/Perl/PHP等语言 典型应用环境:—LAMP平台、与Apache HTTP Server —LNMP平台、与Nginx组合 一 、下载mysql软件 下载网址 : https://dev.mysql.com/downloads/file/?id=485654 1、卸载系统自身带mariadb等软件 #yum -y remove mariadb #mv /etc/my.cnf /etc/my.cnf.old 将RHEL自带的mariadb-libs改名备份 (或者:#rpm -qa | grep -i mariadb #systemctl stop mariadb #rpm -e --nodeps mariadb

MySQL函数

心不动则不痛 提交于 2019-12-05 04:36:34
MySQL函数   MySQL数据库提供了很多函数包括: 数学函数; 字符串函数; 日期和时间函数; 条件判断函数; 系统信息函数; 加密函数; 格式化函数; 一、数学函数   数学函数主要用于处理数字,包括整型、浮点数等。 函数 作用 ABS(x) 返回x的绝对值   SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数   SELECT CEIL(1.5) -- 返回2 FLOOR(x) 返回小于或等于x的最大整数   SELECT FLOOR(1.5) -- 返回1 RAND() 返回0->1的随机数   SELECT RAND() --0.93099315644334 RAND(x) 返回0->1的随机数,x值相同时返回的随机数相同   SELECT RAND(2) --1.5865798029924 SIGN(x) 返回x的符号,x是负数、0、正数分别返回-1、0和1   SELECT SIGN(-10) -- (-1) PI() 返回圆周率(3.141593)   SELECT PI() --3.141593 TRUNCATE(x,y) 返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入)   SELECT TRUNCATE(1.23456,3) -- 1.234 ROUND(x)