MySQL时间日期查询相关函数与方法

来源:互联网 发布:软件ico图标 编辑:程序博客网 时间:2024/05/17 01:12

MySQL应用中,日期与查询是非常普遍的。比如要查某天、某个星期、或者某个月内的数据,查询两个日期之间的天数差,查询某天是星期几等等。下面就介绍一下相关的MySQL时间与日期函数,与它们的具体使用方法。

NOW() 函数

MYSQL 有没有像 MSSQL 的 getdate() 函数?有,就是 NOW()。

1mysql> SELECT now();
2+---------------------+
3| now()               |
4+---------------------+
5| 2011-10-27 09:49:42 |
6+---------------------+
71 row in set

NOW() 函数返回当前的日期和时间。

DATEDIFF() 函数

DATEDIFF() 函数返回两个日期之间的天数。

DATEDIFF(expr,expr2)

DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。

1mysql> SELECT DATEDIFF('2011-10-27','2011-09-05')ASDiffDate;
2+----------+
3| DiffDate |
4+----------+
5|       52 |
6+----------+
71 row in set

查询一周内的数据

01mysql> SELECT title FROMtableWHERE datediff(FROM_UNIXTIME(date),now()) > -7;
02+------------------------------------+
03| title                         |
04+------------------------------------+
05| 什么是面向服务架构SOA              |
06| 从菜鸟到编程高手的学习与认知历程   |
07| JavaScript去除空格trim()的原生实现 |
08| C语言程序在内存中的运行情况        |
09| 为什么说Lisp到现在还很先进         |
10| JavaScript截取中英文字符串         |
11| 谈谈Javascript的匿名函数           |
12| 程序员需要具备的一些基本技能       |
13| 美国社会的一些潜规则               |
14| 二叉搜索树的一些相关算法介绍       |
15| JQuery仿淘宝滚动加载图片           |
16| 收藏一些规范化输入输出的PHP函数    |
17| 趣谈编程语言结构——函数             |
18| CSS设计一个三列布局的页面          |
19| 关于Android应用apk的程序签名       |
20| JavaScript模拟打字效果             |
21| 欧几里德算法(辗转相处法)练手     |
22| JavaScript身份证号码有效性验证     |
23| JavaScript对iframe的DOM操作        |
24| 如何处理JSON中的特殊字符           |
25| 一份腾讯2011笔试题                 |
26| PHP如何实现异步数据调用            |
27| 网站运营需要了解的一些规律         |
28| 勤于思考才能善于架构               |
29+------------------------------------+
3024 rowsinset

同样查询一个月,一年,任意天数都可以这么使用。

查询当天则可以这么写:

1mysql> SELECT title FROMtableWHERE datediff(FROM_UNIXTIME(date),now()) >= 0;
2+----------------------------+
3| post_title                 |
4+----------------------------+
5| 网站运营需要了解的一些规律 |
6| 勤于思考才能善于架构       |
7+----------------------------+
82 rowsinset

查询某天是星期几

DAYNAME(date)

返回date对应的工作日名称。

1mysql> SELECT DAYNAME( NOW() );
2+------------------+
3| DAYNAME( NOW() ) |
4+------------------+
5| Thursday         |
6+------------------+
71 row in set

查询该日期是当周第几天则这么写:

1mysql> SELECT DAYOFWEEK( NOW() );
2+--------------------+
3| DAYOFWEEK( NOW() ) |
4+--------------------+
5|                  5 |
6+--------------------+
71 row in set

返回date (1 = 周日, 2 = 周一, ..., 7 = 周六)对应的工作日索引。这些索引值符合 ODBC标准。


原创粉丝点击