Mysql时间函数用法

NOW,CURDATE,CURTIME

NOW() 函数返回当前的日期和时间。

例子:

SELECT NOW(),CURDATE(),CURTIME()
NOW() CURDATE() CURTIME()
2020-10-12 13:52:12 2020-10-12 13:53:06

NOW()还有3个同义词,效果跟NOW()一样,而且都有2种形式写法:

LOCALTIME或LOCALTIME()
LOCALTIMESTAMP或LOCALTIMESTAMP()
CURRENT_TIMESTAMP或CURRENT_TIMESTAMP()

这些函数还可以直接在SQL里加减:

-- 查询创建时间2天以内的数据,需要加interval关键字,day也是关键字
select *
from equ_alert
where del_flag = '0'
and create_time >= now() - interval 2 day

SYSDATE

NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间。

因为NOW()取自mysql的一个变量”TIMESTAMP”,而这个变量在语句开始执行的时候就设定好了,因此在整个语句执行过程中都不会变化。

执行下面这个例子就明白了:

SELECT NOW(),SYSDATE(),SLEEP(3),NOW(),SYSDATE()

先查询了NOW()和SYSDATE(),然后sleep了3秒,再查询NOW()和SYSDATE(),结果如下:

now() sysdate() sleep(3) now()1 sysdate()1
2021-09-03 10:10:12 2021-09-03 10:10:12 0 2021-09-03 10:10:12 2021-09-03 10:10:15

DATE,YEAR,MONTH等

类似的还有:

year() 年,
month() 月
.....等
monthname() 英文的月,
select year(now());  # 传入一个时间
select year('1998-1-1'); # 也可以传入一个字符串时间或者字段名

DATE() 函数返回日期或日期/时间表达式的日期部分。

假设我们有如下的表:

OrderId ProductName OrderDate
1 ‘Computer’ 2008-12-29 16:25:46.635

我们使用下面的 SELECT 语句:

SELECT ProductName, DATE(OrderDate) AS OrderDate
FROM Orders
WHERE OrderId=1

查询结果:

ProductName OrderDate
‘Computer’ 2008-12-29

DateDiff

DATEDIFF() 函数返回两个日期之间的天数。

语法:

DATEDIFF(date1,date2)date1 和 date2 参数是合法的日期或日期/时间表达式。

例子:

SELECT DATEDIFF('2008-12-30','2008-12-29')  结果是1
SELECT DATEDIFF('2008-12-29','2008-12-30')  结果是-1

实例练习:

查询7天之内到期的订单

select *
from `order`
where DateDiff(end_time,NOW()) <= 7
and end_time >= NOW()
and `status` = 'CHECK_IN'

DATE_ADD

DATE_ADD() 函数向日期添加指定的时间间隔。

语法:

DATE_ADD(date,INTERVAL expr type)date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。

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

假设我们有如下的表:

OrderId ProductName OrderDate
1 ‘Computer’ 2008-12-29 16:25:46.635

现在,我们希望向 “OrderDate” 添加 2 天,我们使用下面的 SELECT 语句:

SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 2 DAY) AS OrderPayDate
FROM Orders

结果:

OrderId OrderPayDate
1 2008-12-31 16:25:46.635

实例练习:

查询7天之内到期的订单

select *
from `order`
where end_time <= DATE_ADD(NOW(),INTERVAL 7 DAY)
and end_time >= NOW()
and `status` = 'CHECK_IN'

DATE_SUB

用法与DATE_ADD相同。从日期减去指定的时间间隔。

SEC_TO_TIME

秒数转时间

select SEC_TO_TIME(45);显示:00:00:45

TIME_TO_SEC

时间转秒数

select TIME_TO_SEC('00:01:01');显示:61

str_to_date

-- 将字符通过指定的格式转换成日期(格式参考下面的SQL日期格式表)
select str_to_date('2012-1-2','%Y-%m-%d')

date_format

-- 将日期转换成字符串(格式参考下面的SQL日期格式表)
select date_format('1988_12_12','%Y-%m-%d') -- 查询出1988-12-12,相当于把下划线换成了小横杆,小横杆也可以自己选择换成别的

SQL日期格式表:

timestampdiff

此函数用来计算时间的差值,单位有:
● YEAR 年
● MONTH 月
● DAY 日
● HOUR 时
● MINUTE 分
● SECOND 秒
● MICROSECOND 微秒
● WEEK 周
● QUARTER 季度

-- timestampdiff(interval,datetime_expr1,datetime_expr2)
select timestampdiff(day ,'2010-09-26 00:00:00','2011-09-26 00:00:00'); -- 结果是365天

from_unixtime

待维护

Mysql时间函数用法相关推荐

  1. mysql 本周函数_【转】MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据...

    MySQL时间函数的使用:查询本周.上周.本月.上个月份的数据[转] /*今天*/ select * from 表名 where to_days(时间字段) = to_days(now()); /*昨 ...

  2. mysql group concat 去重,MySQL group_concat() 函数用法

    MySQL group_concat() 函数用法 在使用 group by对数据进行分组后,如果需要对 select 的数据项进行字符串拼接,这时就需要用到group_concat()函数. 1.基 ...

  3. Mysql时间函数的坑

    Mysql时间函数 函数1: NOW() 函数2: SYSDATE() 大家看下测试 示例 正常大家执行时间函数[看起来没啥问题吧] 执行第二段代码[这里代码认为 sleep休息5]大家会发现前后时间 ...

  4. mysql 日期查询下周,MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据【转】...

    MySQL时间函数的使用:查询本周.上周.本月.上个月份的数据[转] /*今天*/ select * from 表名 where to_days(时间字段) = to_days(now()); /*昨 ...

  5. postgresql兼容MySQL 时间函数date_format

    MySQL DATE_FORMAT() 函数 定义和用法 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,format) date 参数是 ...

  6. MySql DATE_FORMAT函数用法

    DATE_FORMAT(date, format) 函数用法 DATE_FORMAT(date, format) 函数根据format字符串格式化date值. 项目中遇到问题,筛选这里备注下 .... ...

  7. mysql时间函数总结_MySQL 日期时间函数常用总结

    获得当前日期+时间(date + time)1.1    函数:now() 相关函数:current_timestamp(),localtime(),localtimestamp() 举例说明: 2. ...

  8. mysql时间函数now()_MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

  9. Sql server中时间函数用法详解

    SQL中的时间函数非常有用,特别是在我们进行初始赋值.复杂查询的时候,就显得特别方便. 1.获得系统当前时间 select getdate()  2.DateName ( datepart , dat ...

最新文章

  1. Kraken:使用精确比对的超快速宏基因组序列分类软件
  2. 数组拷贝问题的解决方法
  3. android中实现返回首页功能
  4. matlab九节点网络仿真问题,三机九节点电力系统仿真matlab.docx
  5. HDU - 5875 Function(单调栈)
  6. WordPress 主题教程 #3:开始 Index.php
  7. SQL Server AlwaysOn读写分离配置
  8. Bailian2702 密码翻译【密码】
  9. java开源论坛 discuz_Discuz开源论坛
  10. 关于wineQQ8.9.19983deepin23版本提升不能在使用请升级,Linux偷懒升级方法
  11. 关于PCIe有gen1升到gen3的方法
  12. Shadow Defender 1.4.0.561 简体中文注册码破解版(最好用的影子保护系统)
  13. 电感电容阻抗和公式记录
  14. puml绘制思维导图_盘点那些美美哒的在线思维导图制作神器
  15. 电路与电子技术课程设计报告(正弦、方波-三角波、可调矩形波、可调锯齿波发生器)
  16. mfc与win32区别
  17. 使用fmt:formatNumber 标签接收后端数据并格式化
  18. Spring框架-AOP
  19. ansible dnf模块详解
  20. Python处理CSV,Excel,PDF和图片

热门文章

  1. JWT整合springboot 自定义定时更换秘钥
  2. APP界面设计指南|APP界面设计师必备信息图
  3. 【转载】使用Pytorch进行图像分类,AI challenger 农作物病害分类竞赛源码解读
  4. folly库安装(2)openssl升级、python3.8安装
  5. tensorflow.keras.models.Sequential——predict()、predict_classes()、predict_proba()方法的区别
  6. Spring学习笔记7_使用JSR 330标准注解(Using JSR 330 Standard Annotations)
  7. 经典Web容器解析漏洞
  8. WordPress死链自动收集方便提交到站长平台
  9. 转给计算机专业的准大学生!
  10. MySQL的Binlog原理