MySQL 教程

MySQL 教程 MySQL 简介 MySQL 管理系统

MySQL SQL 语句

MySQL SQL MySQL SELECT MySQL WHERE MySQL AND, OR, NOT MySQL ORDER BY MySQL INSERT INTO MySQL NULL Values MySQL UPDATE MySQL DELETE MySQL LIMIT MySQL MIN 和 MAX MySQL COUNT, AVG, SUM MySQL LIKE MySQL 通配符 MySQL IN MySQL BETWEEN MySQL 别名 MySQL 联接 MySQL INNER JOIN MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN MySQL 自联接 MySQL UNION MySQL GROUP BY MySQL HAVING MySQL EXISTS MySQL ANY, ALL MySQL INSERT SELECT MySQL CASE MySQL Null 函数 MySQL 注释 MySQL 运算符

MySQL 数据库

MySQL 创建数据库 MySQL 删除数据库 MySQL 创建表 MySQL 删除表 MySQL 更改表 MySQL 约束 MySQL Not Null MySQL Unique MySQL Primary Key MySQL Foreign Key MySQL Check MySQL Default MySQL Create Index MySQL 自动增量 MySQL 日期 MySQL 视图

MySQL 参考手册

MySQL 数据类型 MySQL 函数

MySQL 实例

MySQL 实例 MySQL 测验 MySQL 练习


MySQL 使用日期

MySQL 日期

处理日期最困难的部分是确保您尝试插入的日期格式与数据库中日期列的格式相匹配。

只要您的数据仅包含日期部分,您的查询就会按预期工作。 但是,如果涉及到时间部分,它就会变得更加复杂。


MySQL 日期数据类型

MySQL 带有以下数据类型,用于在数据库中存储日期或日期/时间值:

  • DATE - 格式 YYYY-MM-DD
  • DATETIME - 格式:YYYY-MM-DD HH:MI:SS
  • TIMESTAMP - 格式:YYYY-MM-DD HH:MI:SS
  • YEAR - 格式 YYYY 或 YY

注意:当您在数据库中创建新表时,会为列设置日期数据类型!


使用日期

请看下表:

Orders 表

OrderId ProductName OrderDate
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

现在我们要从上表中选择 OrderDate 为 "2008-11-11" 的记录。

我们使用以下 SELECT 语句:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

结果集将如下所示:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

注意:如果不涉及时间组件,可以轻松比较两个日期!

现在,假设 "Orders" 表如下所示(注意 "OrderDate" 列中添加的时间分量):

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

如果我们使用与上面相同的 SELECT 语句:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

我们不会得到任何结果! 这是因为查询只查找没有时间部分的日期。

提示:为使您的查询简单且易于维护,请勿在日期中使用时间组件,除非您必须这样做!