在工作中遇到sql语句时间对比问题,查了好多时间函数,正好总结一下:
1, ADDDAYE (expr,days) expr, days为整数值DATE_ADD()为相同功能函数,ADDTIME(expr,expr2)为增加 h,i,s
SELECT ADDDATE(’1998-01-02′, 31);
-> ’1998-02-02′
2,CURDATE() 返回当前日期 具体格式根据函数用在字符串或是数字语境中而定
mysql> SELECT CURDATE();
-> ’1997-12-15′
mysql> SELECT CURDATE() + 0;
-> 19971215
3,CURTIME() 将当前时间以’HH:MM:SS’或 HHMMSS 的格式返回, 具体格式根据函数用在字符串或是数字语境中而定
4,DATE(expr)
提取日期或时间日期表达式expr中的日期部分。
mysql> SELECT DATE(’2003-12-31 01:02:03′);
-> ’2003-12-31′
5,DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。
mysql> SELECT DATEDIFF(’1997-12-31 23:59:59′,’1997-12-30′);
-> 1
mysql> SELECT DATEDIFF(’1997-11-30 23:59:59′,’1997-12-31′);
-> -31
6,DATE_FORMAT(date,format) 根据format 字符串安排date 值的格式。
但是传字段参数时不是很好用,特别是int类型转换成null,而from_unixtime是OK的
以下说明符可用在 format 字符串中:
说明符
说明
%a
工作日的缩写名称 (Sun..Sat)
%b
月份的缩写名称 (Jan..Dec)
%c
月份,数字形式(0..12)
%D
带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, …)
%d
该月日期, 数字形式 (00..31)
%e
该月日期, 数字形式(0..31)
%f
微秒 (000000..999999)
%H
小时(00..23)
%h
小时(01..12)
%I
小时 (01..12)
%i
分钟,数字形式 (00..59)
%j
一年中的天数 (001..366)
%k
小时 (0..23)
%l
小时 (1..12)
%M
月份名称 (January..December)
%m
月份, 数字形式 (00..12)
%p
上午(AM)或下午( PM)
%r
时间 , 12小时制 (小时hh:分钟mm:秒数ss 后加 AM或PM)
%S
秒 (00..59)
%s
秒 (00..59)
%T
时间 , 24小时制 (小时hh:分钟mm:秒数ss)
%U
周 (00..53), 其中周日为每周的第一天
%u
周 (00..53), 其中周一为每周的第一天
%V
周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用
%v
周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用
%W
工作日名称 (周日..周六)
%w
一周中的每日 (0=周日..6=周六)
%X
该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用
%x
该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用
%Y
年份, 数字形式,4位数
%y
年份, 数字形式 (2位数)
%%
‘%’文字字符
所有其它字符都被复制到结果中,无需作出解释。
注意, ‘%’字符要求在格式指定符之前。
月份和日期说明符的范围从零开始,原因是 MySQL允许存储诸如 ’2004-00-00′的不完全日期.
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
-> 'Saturday October 1997'
7,DAY(date)返回date 对应的工作日名称
SELECT DAYNAME(’1998-02-05′);
-> ‘周四’
8,DAYOFMONTH(date) 返回date 对应的该月日期,范围是从 1到31。既提取相应 哪天
9,DAYOFWEEK(date)同上返回工作日期 (1 = 周日, 2 = 周一, …, 7 = 周六)对应的工作日索引
10,DAYOFYEAR(date)返回date 对应的一年中的天数,范围是从 1到366。
mysql> SELECT DAYOFYEAR(’1998-02-03′);
-> 34
11,FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format)
返回’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS 格式值的unix_timestamp参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。
若format 已经给出,则结果的格式是根据format 字符串而定。 format 可以包含同DATE_FORMAT() 函数输入项列表中相同的说明符。
mysql> SELECT FROM_UNIXTIME(875996580);
-> ’1997-10-04 22:23:00′
mysql> SELECT FROM_UNIXTIME(875996580) + 0;
-> 19971004222300
mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
-> ‘%Y %D %M %h:%i:%s %x’);
-> ’2003 6th August 06:22:58 2003′
mysql 日期大于 mysql大于当前时间
转载文章标签 mysql 日期大于 mysql dayetime范围 mysql 字符串 unix 文章分类 MySQL 数据库
-
mysql查看用户的过期时间
本文详细介绍了mysql查看用户的过期时间的方法,并给出了详细的代码示例,一目了然。
MySQL 应用程序 mysql -
mysql 日期 大于当前时间戳 mysql 时间大于昨天
用户签到是提高用户粘性的有效手段,用的好能事半功倍!下面我们从技术方面看看常用的实现手段:一. 方案1直接存到数据库MySQL用户表如下: last_checkin_time 上次签到时间checkin_count 连续签到次数记录每个用户签到信息签到流程1.用户第一次签到 last_checkin_time = time()checkin_count=1 2.用户非第一次签
mysql 日期 大于当前时间戳 mysql 连续日期统计 YLBs CAPTCHA - 签到题 简单的签到代码 redis -
mysql今日时间大于当前时间 mysql 时间大于昨天
前言:瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。 MySQL是一种关联数据库管理系统 由于其体积小、速度快、总体拥有成本低。MySQL软件采用了双授权政策(本词条"授权政策"),它分为社区版和商业版LDAP。 一、MySQL 产品下载版本细节:linux(32 64) win(32 64)请到如下网站:http://www.mysql.com/官方文档上有关 MyS
mysql今日时间大于当前时间 datetime类型怎么输入 linux mysql查看所有表 MySQL 数据库