轻松上手,快乐学习!

SQL 日期


SQL日期

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

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


SQL日期数据类型

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

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

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

  • DATE - 格式化YYYY-MM-DD
  • DATETIME - 格式:YYYY-MM-DD HH:MI:SS
  • SMALLDATETIME - 格式:YYYY-MM-DD HH:MI:SS
  • TIMESTAMP - 格式:唯一编号

注意:在数据库中创建新表时,为列选择日期类型!


SQL使用日期

如果没有涉及时间组件,您可以轻松比较两个日期!

假设我们有以下“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'

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

提示:为了使您的查询简单易维护,请不要在日期中添加时间组件!