MySQL中常用的日期计算语句


关键词

MySQL中常用的日期计算语句

摘要

在MySQL中有大量的函数来进行日期和时间相关的处理,比如UNIX_TIMESTAMP、date、DATE_FORMAT等相关函数,下面我把常用的几种MySQL日期操作函数总结一下,供大家参考。

MySQL中常用的日期计算语句

在MySQL中有大量的函数来进行日期和时间相关的处理,比如UNIX_TIMESTAMP、date、DATE_FORMAT等相关函数,下面我把常用的几种MySQL日期操作函数总结一下,供大家参考。

1.计算年龄

如果你有一个人的生日而需要计算这个人的年龄,将下列语句中@dateofbirth替换为生日即可
SELECT DATE_FORMAT (FROM_DAYS (TO_DAYS (now ()) - TO_DAYS (@dateofbirth)), '%Y') + 0;

2.计算两个日期的差值

计算两个日期的分,秒,小时和天数的差值,如果dt1和dt2的的格式是‘yyyy-mm-dd hh:mm:ss’,那么两个日期之间的秒数差值就是

UNIX_TIMESTAMP ( dt2 ) - UNIX_TIMESTAMP ( dt1 )

3.显示出现了N次的栏目的值
SELECT id
FROM tbl
GROUP BY id
HAVING COUNT (*) = N;

4.计算两个日期之间的工作日

计算两个日期之间的工作日的最简单方法是是一个含有d日期栏目和另一个标定了在已知年份中所有日期是否为休息日的栏目的日历表,然后下面的查询就是找到在Start和Stop两个日期之间所有的工作日
SELECT COUNT (*)
FROM calendar
WHERE d BETWEEN Start AND Stop
AND DAYOFWEEK (d) NOT IN (1,7)
AND holiday=0;

5.unix时间戳比较

Mysql内置函数:UNIX_TIMESTAMP()

若无参数调用,则默认返回一个 从 '1970-01-01 00:00:00' 到当前时刻的秒数(无符号整数)。若用date 来调用 unix_timestamp(),它会返回从 '1970-01-01 00:00:00' 到 date表示的时刻为止的秒数;date 可以是一个 date 字符串、一个 datetime字符串、一个 timestamp或一个当地时间的yymmdd 或yyymmdd格式的数字。

则sql语句可以这样写:
select id,title,content,addtime from tablename_tbl where UNIX_TIMESTAMP(addtime)>= UNIX_TIMESTAMP() - 10800 and UNIX_TIMESTAMP(addtime) <= UNIX_TIMESTAMP()   //10800为3小时的秒数。

也可以这样写

select * from tb where c> date_format('2007-07-06','%Y%m%d') and c <= date_format('2007-07-09','%Y%m%d');

select * from tb where c> date('2007-07-07') and c< date('2007-07-09')

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:MySQL中常用的日期计算语句:http://www.splaybow.com/post/mysql-date-function.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« 下厨房数据丢失与MySQL数据库备份策略 如何用命令在Mysql里创建数据库用户 »