MySql-(Date)时间函数

时间函数

  • 说明:
  • 问题:
    • 数据表结构 以及 数据
  • ==DATE_FORMAT() 函数==
    • 年月日时分秒
    • 将数据timestamp 转换为 年月日 创建时间() 大于 (当天)年月日 的数据
    • date 只是年月日的格式
    • eg: 年月日
    • eg: 时分秒
    • eg: 年月日.时分秒
    • DATE() 函数
    • EXTRACT() 函数
    • DATE_ADD()
    • DATE_SUB()
    • DATEDIFF(date1,date2);
    • round 保留几位数 四舍五入

说明:

此处的符号 ‘’,是输入法的英文格式,的单引号符号

问题:

sql语句能不能直接加上时间的条件筛选?
emmm~~可以的啊,可以啊,那又怎么写呢?
。。。。。
好吧,我承认,我当时就是这么想的。。。去找的时候,发现基本上就没有,所以写此文,借以同感之人,也是做一次存储。

数据表结构 以及 数据

依旧是此表啊,倘若需要此表结构,请点击此处,查看数据结构
MySql-(Date)时间函数_第1张图片

DATE_FORMAT() 函数

此函数,便可用来,解决上述问题。

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法--DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。

可参考格式,请点击此处

年月日时分秒

SELECT *  FROM test WHERE DATE_FORMAT(created_time,'%Y-%m-%d %H:%i:%S')>DATE_FORMAT('2019-06-28 14:23:21' ,'%Y-%m-%d %H:%i:%S');

在这里插入图片描述

将数据timestamp 转换为 年月日 创建时间() 大于 (当天)年月日 的数据

SELECT *  FROM test WHERE DATE_FORMAT(created_time,'%Y-%m-%d')>DATE_FORMAT('2019-06-28 14:23:21' ,'%Y-%m-%d');

在这里插入图片描述

date 只是年月日的格式

SELECT *  FROM test WHERE DATE(created_time)>DATE_FORMAT('2019-06-28 14:23:21' ,'%Y-%m-%d');

在这里插入图片描述

eg: 年月日

SELECT  DATE(created_time) FROM test 

MySql-(Date)时间函数_第2张图片

SELECT DATE_FORMAT(created_time,'%Y-%m-%d') FROM test

MySql-(Date)时间函数_第3张图片

eg: 时分秒

SELECT  TIME(created_time) FROM test 

MySql-(Date)时间函数_第4张图片

SELECT DATE_FORMAT(created_time,'%H-%i-%s') FROM test

MySql-(Date)时间函数_第5张图片

eg: 年月日.时分秒

SELECT DATE_FORMAT(created_time,'%Y-%m-%d %H:%i:%s') AS 创建时间 FROM test

MySql-(Date)时间函数_第6张图片

DATE() 函数

DATE() 函数返回日期或日期/时间表达式的日期部分。
select date(created_time) from test;   ## 此处仅返回 年月日

MySql-(Date)时间函数_第7张图片

EXTRACT() 函数

函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

若非,测试。否则绝对不能使用 中文 表示字段名,切记。
SELECT EXTRACT(YEAR FROM created_time) AS 年 ,
EXTRACT(MONTH FROM created_time) AS 月,
EXTRACT(DAY FROM created_time) AS 日
FROM test
ORDER BY created_time DESC
MySql-(Date)时间函数_第8张图片

DATE_ADD()

语法-----DATE_ADD(date,INTERVAL expr type)

说明----- date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。TYPE 参数可以是下列值 可参考此处

TYPE中的==QUARTER==  是季度的意思   一年四季  每季三月

原本时间—2019-07-01 10:31:54
加上一个季度
SELECT DATE_ADD(created_time,INTERVAL 1 QUARTER)
FROM test
WHERE id = ‘1’; date_add

加上一天一小时  原本: 2019-07-01 10:31:54

SELECT DATE_ADD(created_time , INTERVAL ‘1-1’ DAY_HOUR)
FROM test
WHERE id = ‘1’
加上一天一小时

DATE_SUB()

 	与上面的 DATE_ADD()用法一样,只不过,这是减时间。

DATEDIFF(date1,date2);

	 比较两个合法参数之间的天数  字段忽略时分秒
	 SELECT DATEDIFF('2017-02-22','2017-08-13');
	 SELECT DATEDIFF('2017-08-17','2017-08-19');

DATEDIFF要计算周或月作为间隔时间,可以将DATEDIFF函数的返回值除以7或30,如下查询语句:

round 保留几位数 四舍五入

	SELECT ROUND( DATEDIFF('2017-02-22','2017-08-13')/7,2) AS weeks ,
			ROUND( DATEDIFF('2019-7-1','2019.1.1')/30,2) AS months

在这里插入图片描述

参考文献,请点击此处.

查看MySql-常用函数,请点击此处
查看Java后台Date时间处理-请点击此处

你可能感兴趣的:(sql)