mysql日期函数

MySQL 日期、时间的加减法,以及date_format函数

限于喜欢 提交于 2019-12-15 10:32:31
一、加减某个时间间隔:date_add () 与 date_sub () 函数 1. date_add() :加 select date_add('2019-12-12', interval 1 day) dayTime, date_add('2019-12-12', interval 1 month) monthTime, date_add('2019-12-12', interval 1 year) yearTime; 2. date_sub() :减 select date_sub('2019-12-12', interval 1 day) dayTime, date_sub('2019-12-12', interval 1 month) monthTime, date_sub('2019-12-12', interval 1 year) yearTime; 二、日期相减: datediff()与 timedifff()函数 1. datediff(date1,date2):两个日期相减,得到相减(date1减date2)之后的“天数” select datediff('2019-12-12','2019-11-11') intervalDay; 2. timediff(time1,time2):两个时间相减,得到相减(time1减time2)之后的时间“差值” select

MYSQL中的日期时间转换

為{幸葍}努か 提交于 2019-12-14 10:35:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见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日期函数

落花浮王杯 提交于 2019-12-13 21:32:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 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 , interval 1 minute); - 加1分钟 select date_add( @dt , interval 1 second); -加1秒 select date_add(@dt, interval 1 microsecond);-加1毫秒 select date_add(@dt, interval 1 week);-加1周 select date_add(@dt, interval 1 month);-加1月 select date_add(@dt, interval 1 quarter);-加1季 select date_add(@dt, interval 1 year);-加1年 MySQL adddate(), addtime()函数,可以用date_add() 来替代。下面是date_add() 实现addtime() 功能示例: mysql > set @dt =

MySQL基础教程

ⅰ亾dé卋堺 提交于 2019-12-11 16:42:41
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 这是一个基础的MySQL教程,通过教程的学习后可以到达一个初级到中级 MySQL应用水平级别 ,主要介绍一些MySQL中基本的SQL语句。如果这是您第一次使用关系数据库管理系统(之前没有学习SQL相关知识)那么也没有关系,本教程将为您提供使用 MySQL数据库服务器的工作所需知识和示例,如:查询数据,更新数据,管理数据库和创建表等等。 如果已经熟悉其它的关系数据库管理系统,如:PostgreSQL,甲骨文(Oracle),或Microsoft SQL Server等,那么将有助于理解和使用本教程,刷新知识并理解MySQL的SQL语句,看看MySQL与其他数据库系统有怎样的不同。 第1节、开始使用MySQL 本节将帮助您快速使用MySQL。我们将开始安装MySQL,下载一个样本数据库,并将样本数据加载到MySQL服务器中,作为后续示例练习使用。 安装MySQL数据库服务器 - 一步一步演示如何在您的计算机上安装 MySQL 数据库服务器(软件)。 下载MySQL的示例数据库 - 介绍一个MySQL的示例数据库(studymysql)。我们将提供链接下载示例数据库和它的ER图。 加载示例数据库到本地MySQL数据库服务器 – 演示如何将示例数据库(studymysql)加载到MySQL数据库服务器中进行练习。

MySQL数据库TO_DAYS()函数的用法

天涯浪子 提交于 2019-12-10 20:06:54
TO_DAYS(date) 给定一个日期date, 返回一个天数 (从年份0开始的天数 )。 题目连接: to_days()函数的考察 答案: select w1.Id as ID from Weather w1,Weather w2 where TO_DAYS(w1.ReDate) - TO_DAYS(w2.ReDate) = 1 and w1.Temp>w2.Temp 来源: CSDN 作者: 厌离心 链接: https://blog.csdn.net/m0_37818215/article/details/103480995

Mysql 获取每个分组最新的一条数据

做~自己de王妃 提交于 2019-12-10 16:01:23
参考: https://mp.weixin.qq.com/s?src=11&timestamp=1575960750&ver=2025&signature=krnJqqJuFuNzr3XUXCLKyKVBYRS*DaPNAPuRUHPwR8Eb02hu2hQrN5EjP89lQSeoUvfvHfU3lCiAwE*Z7O4uDpCybl46CLxYwQzDYdtbuQTkfgGfroUf8XHeVpMzamfe&new=1 根据ship_id分组,然后根据sta_time排序,取最新的一条数据 select * from s_mon_ship_biz where id in ( select SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY STA_TIME desc),',',1) from s_mon_ship_biz GROUP BY SHIP_ID ) ORDER BY STA_TIME desc 解释: 通过group_concat函数 先将数据按照日期倒序排序(日期最新的在最前面),然后在group,这样每个分类的第一条肯定是日期最新的。 substring_index函数 substring_index(str,delim,count),str:要处理的字符串、delim:分隔符、count:计数 例子:   SELECT

mysql存储过程procedure

﹥>﹥吖頭↗ 提交于 2019-12-10 08:26:06
1、 存储过程的概念: 所谓的存储过程就是存储在数据库当中的可以执行特定工作(查询和更新)的一组SQL代码的程序段。 2、 存储过程的优点: (1)存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 (2)当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 (3)存储过程可以重复使用,可减少数据库开发人员的工作量。 (4)安全性高,可设定只有某些用户才具有对指定存储过程的使用权。 3、 关于 MySQL 的存储过程 存储过程是数据库存储的一个重要的功能,但是 MySQL 在 5.0 以前并不支持存储过程,这使得 MySQL 在应用上大打折扣。好在 MySQL 5.0 终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。 4、 mysql存储过程的创建: 格式: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body (1)默认地,子程序与当前数据库关联。要明确地把子程序与一个给定数据库关联起来

MySQL中DATE_FORMAT的使用

陌路散爱 提交于 2019-12-09 21:43:18
DATE_FORMAT:DATE_FORMAT(date,format) 函数用于以不同的格式显示日期/时间数据。date是要转化的日期,format是格式 示例: select DATE_FORMAT ( NOW ( ) , '%Y-%m-%d' ) ; 结果: 2018 - 09 - 12 format格式 格式 描述 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时(00-23) %h 小时(01-12) %I 小时(01-12) %i 分钟,数值(00-59) %j 年的天(001-366) %k 小时(0-23) %l 小时(1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时(hh:mm:ss) %U 周(00-53)星期日是一周的第一天 %u 周(00-53)星期一是一周的第一天 %V 周(01-53)星期日是一周的第一天,与 %X 使用 %v 周(01-53)星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天(0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位

MYSQL INT格式时间戳转为时间格式

僤鯓⒐⒋嵵緔 提交于 2019-12-07 03:19:57
有时候会直接用到INT结构的时间戳来记录时间(如图), 这时就需要进行转换了 比如我这个数据库,我要删除 3天内 的所有数据 SELECT FROM_UNIXTIME( logtime ) FROM `zz_account_log` where DATE(from_unixtime(logtime,'%Y-%m-%d') )> DATE(CURDATE() - INTERVAL 3 DAY) UNIX_TIMESTAMP(date) 如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数) 可以使用该函数 直接进行对比时间戳 FROM_UNIXTIME ,就是将时间戳转成常用时间格式 SELECT FROM_UNIXTIME(logtime) FROM `zz_account_log` 返回结果: UNIX_TIMESTAMP(date) 如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的 本地时间的一个数字。 代码如下

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