mysql时间函数

mysql 日期查询操作 copy

允我心安 提交于 2019-11-26 18:59:41
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 Select * FROM 表名 Where TO_DAYS( NOW( ) ) – TO_DAYS( 时间字段名) <= 1 7天前 如果是7天后就是DATE_ADD函数 Select * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名) 近30天前 Select * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名) 本月 Select * FROM 表名 Where DATE_FORMAT( 时间字段名, ‘%Y%m’ ) = DATE_FORMAT( CURDATE( ) , ‘%Y%m’ ) 上一月 Select * FROM 表名 Where PERIOD_DIFF( date_format( now( ) , ‘%Y%m’ ) , date_format( 时间字段名, ‘%Y%m’ ) ) =1 //时间转成年月日时分秒 select date_format(now(),'%Y%m%d%H%i%S') //时间转成年月日 select date_format(now(),'%Y%m%d'

mysql 获取当前日期周一和周日

谁说我不能喝 提交于 2019-11-26 17:16:04
select subdate(curdate(),date_format(curdate(),'%w')-1)//获取当前日期在本周的周一 select subdate(curdate(),date_format(curdate(),'%w')-7)//获取当前日期在本周的周日 这两句语句是mysql用来取当前日期的周一或周日的一个方法,那么这句如何运作的呢? %w 是以数字的形式来表示周中的天数( 0 = Sunday, 1=Monday, . . ., 6=Saturday),0为周日,6为周六,跟我们一般的认知,一周是从周一开始的并不一样。 date_format是一个日期转换函数 date_format(curdate(),'%w') 表示当前日期到上周周日共有几天的间隔,即当前日期减去上周周日的日期=天数(例:curdate()为2011-01-11,那么上周周日为 2011-01-09,两者相减为2)所以若单独输出这一句:select date_format(curdate(),'%w') 结果就是2 在mysql api里对于subdate函数是这样解释的: SELECT SUBDATE(NOW( ), 1) AS 'Yesterday', SUBDATE(NOW( ), INTERVAL -1 DAY) AS 'Tomorrow'; 正值为昨天,负值为明天

MySQL中的常用函数

荒凉一梦 提交于 2019-11-26 16:32:50
聚合函数 count() 查询某个字段的行数 max()查询某个字段的最大值 min()查询某个字段的最小值 sum()查询某个字段的和 avg()查询某个字段的平均值 常用的字符函数 -- concat(str1,str2...strN) 连接字符串 SELECT CONCAT('h','el','lo') FROM DUAL; -- insert(str,begin,length,newStr) 替换字符串 -- str初始的字符串 begin 开始的位置 从1开始 -- length 替换长度 newStr替换的字符串 SELECT INSERT('hello',2,3,'55555') FROM DUAL; -- subString(str,begin,length) 截取字符串 SELECT SUBSTRING('hello',2,3) FROM DUAL; -- lower(str)转换成小写 -- upper(str)转换成大写 -- 常用的日期和时间函数 -- 获取 年月日 SELECT CURDATE() FROM DUAL; -- 获取 时分秒 SELECT CURTIME() FROM DUAL; -- 获取 年月日 时分秒 SELECT NOW() FROM DUAL; -- 获取年份 SELECT YEAR(NOW()) FROM DUAL; SELECT

mysql 常用函数

半腔热情 提交于 2019-11-26 16:32:41
-- 绝对值 100 select abs(-100) -- 四舍五入 保留两位小数 4.6300 select round(4.6288*100)/100 -- 向下取整 9 select floor(9.9) -- 向上取整 4 select CEIL(3.2) -- 2的3次幂 SELECT power(2,3) 当前时间 now(), 2019-08-09 09:22:51 curdate(), 2019-08-09 curtime() 09:22:51 格式化日期 select DATE_FORMAT(now(),'%Y') 2019 DATE_FORMAT(now(),'%m') 08 DATE_FORMAT(now(),'%d') 09 DATE_FORMAT(now(),'%H') 09 小时(24) DATE_FORMAT(now(),'%h') 09 小时(12) DATE_FORMAT(now(),'%i') 47 分钟 DATE_FORMAT(now(),'%s') 20 秒 DATE_FORMAT(now(),'%w') 5 星期5 DATE_FORMAT(now(),'%W') Friday 星期5 DATE_FORMAT(now(),'%j') 本年第几天 221 DATE_FORMAT(now(),'%U') 本年第几周 31 DATE_FORMAT

Mysql的常用函数

谁都会走 提交于 2019-11-26 16:32:13
字符串函数 (1) 语法:CONCAT(str1,str2,...,strn) 参数一:待拼接字符串 参数二:待拼接字符串 返回结构:一个完整的字符串 SELECT CONCAT('MY','S','QL') (2) 语法:INSERT(str,pos,len,newstr) 参数一:字符串 参数二:开始的位置 参数三:从开始位置截取的长度 参数四:代替截取部分的新字符串 返回结构:一个新的字符串 SELECT INSERT('这是SQL Server数据库',3,10,'MYSQL') (3) 语法:LOWER(str) 参数一:一个平凡而又普通的字符串 返回结构:将字符串中的字母全部变为小写 SELECT LOWER('ABC') (4) 语法:UPPER(str) 参数一:一个平凡而又普通的字符串 返回结构:将字符串中的字母全部变为大写 SELECT UPPER('ABC') (5) 语法: SUBSTRING(str,num,len) 参数一:一个平凡而又普通的字符串 参数二:起始位置(从1开始) 参数三:从起始位置开始截取的长度 返回结构:返回一段从num位置截取len长度的字符串 SELECT SUBSTRING('123456789',5,3) 时间日期函数 (1) 语法:CURDATE() 返回结构:获取当前日期 SELECT CURDATE() (2) 语法

mysql日期函数

折月煮酒 提交于 2019-11-26 11:00:00
* now() (返回当前系统日期和时间) *curdate() (返回当前系统日期不包括时间) *curtime() 只返回时间 *year() 返回年 month() 返回月 day() 返回天 select year("1998-9-8") 1998 select month("1998-9-9") 9 select day("1998-9-9") 9 *str_to_date (将字符格式转变成日期格式) select str_to_date("2019年-8月-3号“) 来源: https://www.cnblogs.com/Be-your-own-hero/p/11318476.html

Mysql之DATE_FORMAT()

☆樱花仙子☆ 提交于 2019-11-26 10:51:38
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。 语法: DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。例1:SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S');结果:2019-08-07 22:32:43例2:SELECT DATE_FORMAT('20190807','%Y-%m-%d %H:%i:%S');结果:2019-08-07 00:00:00 来源: https://www.cnblogs.com/yaoze2018/p/11318314.html

MySQL 8.0部分弃用的参数整理

风流意气都作罢 提交于 2019-11-26 10:21:36
最近整理了一下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-11-26 08:00:08
背景 最近一直忙于手上澳洲线上项目的整体迁移和升级的准备工作,导致博客和公众号停更。本周终于艰难的完成了任务,借此机会,总结一下项目中遇到的一些问题。 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

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

孤人 提交于 2019-11-26 07:48:58
背景 最近一直忙于手上澳洲线上项目的整体迁移和升级的准备工作,导致博客和公众号停更。本周终于艰难的完成了任务,借此机会,总结一下项目中遇到的一些问题。 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