最近面试碰到了关于数据库函数的问题,他是这样问的,“给你一个日期,获取该日期所在周的信息”,让我说一下思路,当时我问他有没有这样的函数,他非常肯定的说没有,但是后来g了一下发现,这家伙居然骗我,发现很多面试官对于面试者不会的信息很少解释,我邪恶的猜想可能是他们也不会吧,呵呵。言归正传,花了半天整理和练习了一下关于mysql的时间函数,可能不全,但我认为在大多数情况下已经能解决很多问题了。
注:参考文献:
http://www.blogjava.net/Alpha/archive/2006/04/07/39844.html
表 info
字段 id name createDate
1 根据日期获得该日期所在周的所有信息
select * from dateInfo where year(createDate) = year(now())
and week(createDate) = week(now());
now()函数获取当前时间
year(date)获取参数时间的年份信息 返回一个1000-9999的数字
week(date)获取参数所在一年中的第几周 返回一个0-52的数字
week(date,0)为0时表示星期日为下一周的开始与week(date)一致
week(date,1)为1是表示星期一为一下周的开始
通过上面判断可以获取参数所在周的一周的信息
2 根据日期获取该日期所在季度的信息
select * from dateInfo where year(createDate) = year(now())
and quarter(createDate) = quarter(now());
与上面大同小异 quarter(date)获取季度信息 返回一个1-4的数字
3 获取每周周五的信息
select * from dateInfo where weekday(createDate) = 4;
weekday()返回一个0-6的数字,星期一为第一天即0
再来一个获取工作日的信息
select * from dateInfo where weekday(createDate) != 5
and weekday(createDate) != 6;
下面的就简单介绍一下用途
dayofmonth(date)获取date所在月的第几天 返回一个1-31的数字
dayofyear(date)获取date所在年的第几天 返回一个1-366的数字
month(date)获取date的月份 返回一个1-12的数字
hour(date)获取date的小时数 返回一个0-23的数字
minute(date)获取date的分钟数 返回一个0-59的数字
second(date)获取date的秒 返回一个0-59的数字
4 添加时间信息 减去时间信息
date_add(date,interval info type)
date时间信息
info要添加的时间信息
type添加的类型,决定最后添加的日期的什么地方
在当前时间添加一小时
select date_add(now(),interval 1 hour );
在当前时间添加5分20秒
select date_add(now(),interval '5:20' mintue_second);
在当前时间添加1小时5分20秒
select date_add(now(),interval '1:5:20' hour_second);
在当前时间添加1天1小时5分20秒
select date_add(now(),interval '1 1:5:20' day_second);
大家可能看出来了在添加超过两个日期项的时候,type只需要指定开始和结束的type就ok了
另外相对应的有一个date_sub(date,interval info type) 减去时间信息用法与上面类似
5 对月份的操作
period_add(ym,n)增加n个月到日期p(格式为YYYYMM或YYMM)
select period_add('201005',8) 返回值201101
period_diff(ym1,ym2)算出ym1与ym2的月份插,两者格式都是YYYYMM或YYMM
select period_diff('1005','1008'); 返回值-3 其实是ym1月份减去ym2月份
目前就总结到这里了,如果以后用到更多的话会在补充的,呵呵!高手们多拍拍砖啊!
分享到:
相关推荐
MYSQL 日期函数大全,供大家一起共同分享学习。
比较详细的mysql时间函数,预防备用。
mysql时间日期函数
mysql时间函数.
MySQL日期时间函数大全
很详实的mysql 时间函数的用法,花了很多时间搜集到的好资料,我自己编程时经常查看
网上找到的mysql时间函数用法集合,和大家分享
MysqL时间处理函数,文档收集了MysqL的各种时间处理函数以及示例说明,简单易懂。
mysql的日期和时间函数
日期和时间函数 MySQL使用什么日历? 全文搜索功能 . 布尔全文搜索 . 全文搜索带查询扩展 . 全文停止字 . 全文限定条件 . 微调MySQL全文搜索 Cast函数和操作符 其他函数 . 位函数 . 加密函数 . 信息函数 ...
MySql常用函数大全讲解,数学函数 字符串函数 日期和时间函数 条件判断函数 系统信息函数 加密函数 格式化函数
MySQL日期数据类型、MySQL时间类型使用总结,适用于 MySQL 5.X 及以上版本
MySQL内置函数中的日期和时间函数详解.pdf
Mysql常用函数列表 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0 …… 数学类 ABS (number2 ) //绝对值 …… 日期...
获取当前时间的MySql时间函数处理MySql时间日期的函数有很多,下面为您介绍的就是用于获取当前时间的MySql时间函数,如果您对此感兴趣的话,不妨一看下面为您介绍的MySql时间函数用于获取当前时间,该MySql时间函数...
MySQL时间函数 自己整理的,非常适用!
MySQL内置函数表(包括字符串函数、数学函数和日期时间函数)
mysql+php中文乱码问题及mysql时间函数.docx
mysql+php中文乱码问题及mysql时间函数.pdf