常用的mysql日期函数

怪我咯
发布: 2017-03-31 10:19:05
原创
1678人浏览过

因为快要毕业了,也去过几家公司面试,其中去过一家面试php开发的,有道sql有优化题,当时对mysql函数并没有研究和系统的学习,囧。。。
mysql有主要的内建函数如下:

now()
返回当前的日期和时间

curdate()
返回当前的日期

curtime()
返回当前的时间

date()
提取日期或日期/时间表达式的日期部分

extract()
返回日期/时间按的单独部分

date_add()
给日期添加指定的时间间隔


date_sub()
从日期减去指定的时间间隔


datediff()
返回两个日期之间的天数


date_format()
用不同的格式显示日期/时间


还包括一些返回日期的各个部分函数:
选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒
set @dt = '2008-09-10 07:15:30.123456';

select date(@dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt); -- 2008
select quarter(@dt); -- 3
select month(@dt); -- 9
select week(@dt); -- 36
select day(@dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt); -- 30
select microsecond(@dt); -- 123456
这些函数对日期的比较有很大的帮助,很多新手在处理日期函数的时候不太会处理,容易出错,下面举个例子吧:
假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql:
select * from product where add_time = '2013-01-12'
对于这种语句,如果你存储的格式是yy-mm-dd是这样的,那么ok,如果你存储的格式是:2013-01-12 23:23:56这种格式你就悲剧了,这是你就可以使用date()函数用来返回日期的部分,所以这条sql应该如下处理:
select * from product where date(add_time) = '2013-01-12'
再来一个,如果你要查询2013年1月份加入的产品呢?
select * from product where date(add_time) between '2013-01-01' and '2013-01-31'
你还可以这样写:
select * from product where year(add_time) = 2013 and month(add_time) = 1
这些你该知道mysql日期函数在对你处理日期比较问题的作用了吧?

以上就是常用的mysql日期函数的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号