mysql中时间计算函数SQL DATE_SUB()用法

本文为博主原创,未经允许不得转载:

在写sql的时候,经常要在sql中传值时间,对时间进行计算并过滤。之前都是将时间在后台计算好,直接传值给sql,

今天发现,有一个更方便的sql函数,可以简化很多代码。这个函数就是 DATE_SUB()。

DATE_SUB 将从一个日期/时间值中减去一个时间值(时间间隔)。

其函数中用法表达式为:DATE_SUB(date,INTERVAL expr type),

type的参数可以为一下类型:

MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

使用举例如下:

--一年前
select DATE_SUB(CURDATE(), INTERVAL 1 YEAR) as yearTime
--一天前
select DATE_SUB(CURDATE(), INTERVAL 1 DAY) as selecttime
--一月前
select DATE_SUB(CURDATE(), INTERVAL 1 MONTH) as selecttime
--三年前
select DATE_SUB(CURDATE(), INTERVAL 3 YEAR) as yearTime 
  1. SELECT DATE_SUB(‘2010-08-12‘, INTERVAL 3 DAY) AS NewDate

结果: 2010-08-09

2.SELECT DATE_SUB(‘2010-08-12‘, INTERVAL ‘3-2‘ YEAR_MONTH) AS NewDate

结果: 2007-06-12

3.SELECT DATE_SUB(‘2011-09-14 2:44:36‘, INTERVAL ‘2:26‘ HOUR_MINUTE) AS NewDate

结果: 2011-09-14 00:18:36

原文地址:https://www.cnblogs.com/zjdxr-up/p/8259803.html

时间: 2024-11-05 21:16:23

mysql中时间计算函数SQL DATE_SUB()用法的相关文章

mysql中时间日期函数

转自:mysql 中 时间和日期函数 一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+| now()               |+---------------------+| 2008-08-08 22:20:46 |+---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

mysql 中 时间和日期函数

原文链接: mysql 中 时间和日期函数 - redfox - 博客园 http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html ----------------------------------------------------------------------------------------------------------------------------------------------------

mysql 中时间和日期函数应用

一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2015-01-22 22:20:46 | +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_

mysql中的group_concat函数的用法

1 本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 2 MySQL中group_concat函数 3 完整的语法如下: 4 group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 5 基本查询 6 mysql> select * from aa; 7 +------+------+ 8 | id| name | 9 +-

Mysql中常用的函数汇总

Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回值e(自然对数的底)的x次方floor(x) 返回小于x的最大整数值greatest(x1,x2,...,xn)返回集合中最大的值least(x1,x2,...,xn) 返回集合中最小的值ln(x) 返回x的自然对数log(x,y)返回x的以y为底的对数mod(x,y) 返回x/y的模(余数)pi(

批量 kill mysql 中运行时间长的sql

转自:思齐-批量 kill mysql 中运行时间长的sql 以下内容来自mysql手册: 13.5.5.3. KILL语法KILL [CONNECTION | QUERY] thread_id每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程. KILL允许自选的CONNECTION或QUERY修改符: · KILL CONNECTION与不含修改符的KILL一样:它会终止与给

Vertica用于时间计算的SQL语句大全

That`s it. 我发现在网上Laravel的学习资料实在是太少了.好多东西需要自己去弄.去理解. 我的方法还有一个,就是去github上面下载老外写的Laravel网站,然后拿下来自己运行,分析代码,然后找出其中的出彩的地方.恩,很不错的方法.今天让我找到了一个好东西,就是Laravel 本地化语言的功能. 所谓本地化语言,就是说在不同的的国家可能使用不同的语言.那么如果没有适应各个语言的程序,也就意味着程序需要重写.现在Laravel提供了一个方便的功能,本地化语言支持. 好了,下面让我

MySQL 中的 FOUND_ROWS() 函数

移植sql server 的存储过程到mysql中,遇到了sql server中的: IF @@ROWCOUNT < 1 对应到mysql中可以使用 FOUND_ROWS() 函数来替换. 1. found_rows() 函数的文档: http://dev.mysql.com/doc/refman/5.6/en/information-functions.html#function_found-rows 1)found_rows() 的第一种使用情况(带有SQL_CALC_FOUND_ROWS,

Mysql中关于 group_concat函数详解

group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码   select * from aa; +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+---