Mysql时间函数用法
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时间函数用法相关推荐
- mysql 本周函数_【转】MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据...
MySQL时间函数的使用:查询本周.上周.本月.上个月份的数据[转] /*今天*/ select * from 表名 where to_days(时间字段) = to_days(now()); /*昨 ...
- mysql group concat 去重,MySQL group_concat() 函数用法
MySQL group_concat() 函数用法 在使用 group by对数据进行分组后,如果需要对 select 的数据项进行字符串拼接,这时就需要用到group_concat()函数. 1.基 ...
- Mysql时间函数的坑
Mysql时间函数 函数1: NOW() 函数2: SYSDATE() 大家看下测试 示例 正常大家执行时间函数[看起来没啥问题吧] 执行第二段代码[这里代码认为 sleep休息5]大家会发现前后时间 ...
- mysql 日期查询下周,MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据【转】...
MySQL时间函数的使用:查询本周.上周.本月.上个月份的数据[转] /*今天*/ select * from 表名 where to_days(时间字段) = to_days(now()); /*昨 ...
- postgresql兼容MySQL 时间函数date_format
MySQL DATE_FORMAT() 函数 定义和用法 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,format) date 参数是 ...
- MySql DATE_FORMAT函数用法
DATE_FORMAT(date, format) 函数用法 DATE_FORMAT(date, format) 函数根据format字符串格式化date值. 项目中遇到问题,筛选这里备注下 .... ...
- mysql时间函数总结_MySQL 日期时间函数常用总结
获得当前日期+时间(date + time)1.1 函数:now() 相关函数:current_timestamp(),localtime(),localtimestamp() 举例说明: 2. ...
- mysql时间函数now()_MySQL中时间函数NOW()和SYSDATE()的区别
mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...
- Sql server中时间函数用法详解
SQL中的时间函数非常有用,特别是在我们进行初始赋值.复杂查询的时候,就显得特别方便. 1.获得系统当前时间 select getdate() 2.DateName ( datepart , dat ...
最新文章
- Kraken:使用精确比对的超快速宏基因组序列分类软件
- 数组拷贝问题的解决方法
- android中实现返回首页功能
- matlab九节点网络仿真问题,三机九节点电力系统仿真matlab.docx
- HDU - 5875 Function(单调栈)
- WordPress 主题教程 #3:开始 Index.php
- SQL Server AlwaysOn读写分离配置
- Bailian2702 密码翻译【密码】
- java开源论坛 discuz_Discuz开源论坛
- 关于wineQQ8.9.19983deepin23版本提升不能在使用请升级,Linux偷懒升级方法
- 关于PCIe有gen1升到gen3的方法
- Shadow Defender 1.4.0.561 简体中文注册码破解版(最好用的影子保护系统)
- 电感电容阻抗和公式记录
- puml绘制思维导图_盘点那些美美哒的在线思维导图制作神器
- 电路与电子技术课程设计报告(正弦、方波-三角波、可调矩形波、可调锯齿波发生器)
- mfc与win32区别
- 使用fmt:formatNumber 标签接收后端数据并格式化
- Spring框架-AOP
- ansible dnf模块详解
- Python处理CSV,Excel,PDF和图片
热门文章
- JWT整合springboot 自定义定时更换秘钥
- APP界面设计指南|APP界面设计师必备信息图
- 【转载】使用Pytorch进行图像分类,AI challenger 农作物病害分类竞赛源码解读
- folly库安装(2)openssl升级、python3.8安装
- tensorflow.keras.models.Sequential——predict()、predict_classes()、predict_proba()方法的区别
- Spring学习笔记7_使用JSR 330标准注解(Using JSR 330 Standard Annotations)
- 经典Web容器解析漏洞
- WordPress死链自动收集方便提交到站长平台
- 转给计算机专业的准大学生!
- MySQL的Binlog原理