最新的Web开发教程
 

SQL日期函数


SQL日期

使用日期时,最困难的部分是要确保你正在试图插入日期的格式,在数据库中日期列的格式相匹配。


MySQL的日期函数

下表列出了在MySQL中最重要的内建日期函数:

功能 描述
NOW() 返回当前的日期和时间
CURDATE() 返回当前日期
CURTIME() 返回当前时间
DATE() 提取日期或日期/时间表达式的日期部分
EXTRACT() 返回的一个日期/时间的单个部分
DATE_ADD() 添加一个指定的时间间隔为日期
DATE_SUB() 从日期减去指定的时间间隔
DATEDIFF() 返回天两个日期之间的数
DATE_FORMAT() 显示日期/不同格式的时间数据

SQL Server的日期函数

下表列出了在SQL Server的最重要的内置的日期的功能:

功能 描述
GETDATE() 返回当前的日期和时间
DATEPART() 返回的一个日期/时间的单个部分
DATEADD() 添加或从日期减去指定的时间间隔
DATEDIFF() 返回两个日期之间的时间
CONVERT() 显示日期/不同格式的时间数据

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 - 格式:一个唯一的编号

Note:日期类型为列选择当您在数据库中创建新表!

有关可用的所有数据类型的概述,请访问我们完整的数据类型参考


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 卡门培尔皮埃罗 2008-11-09十五点45分21秒
3 莫扎里拉吉奥瓦尼 2008-11-11 11点12分01秒
4 马斯卡Fabioli 2008-10-29 14时56分59秒

如果我们用同样的SELECT语句如上:

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

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

Tip:如果你要保持你的查询简单,易于维护,不要让你的日期时间部分!