W3School 在线教程

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'

我们将无法得到结果!这是因为查询只寻找没有时间部分的日期。

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

(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /