码迷,mamicode.com
首页 > 数据库 > 详细

SQL基本操作——日期函数

时间:2017-10-16 18:02:23      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:date   erp   product   tar   alt   www.   ted   current   参数   

SQL日期:当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。

SQL Server 中最重要的内建日期函数:GETDATE() 、DATEPART()、DATEADD()、DATEDIFF()、CONVERT()

1、GETDATE() 函数从 SQL Server 返回当前的时间和日期。

--基本使用
SELECT GETDATE() AS CurrentDateTime
--创建带有日期时间列 (OrderDate) 的 "Orders" 表
CREATE TABLE Orders 
(
OrderId int NOT NULL PRIMARY KEY,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT GETDATE()
)

请注意,OrderDate 把 GETDATE() 规定为默认值。结果是,当您在表中插入新行时,当前日期和时间自动插入列中。现在,我们希望在 "Orders" 表中插入一条记录:

INSERT INTO Orders (ProductName) VALUES (Computer)

结果:

OrderId ProductName OrderDate
1 Computer 2008-12-29 16:25:46.635

 

 

2、DATEPART() 函数返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

语法:

DATEPART(datepart,date)

date 参数是合法的日期表达式。datepart 参数可以是下列的值:

技术分享

假设我们有下面这个 "Orders" 表:

OrderId ProductName OrderDate
1 Computer 2008-12-29 16:25:46.635

 

 

我们使用如下 SELECT 语句:

SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay
FROM Orders
WHERE OrderId=1

结果:

OrderYear OrderMonth OrderDay
2008 12 29

 

 

3、DATEADD() 函数在日期中添加或减去指定的时间间隔。

语法:

DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。datepart 参数可以是上图中的值。

我们利用上面的 "Orders" 表。现在,我们希望向 "OrderDate" 添加 2 天,这样就可以找到付款日期。我们使用如下 SELECT 语句:

SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate
FROM Orders

结果:

OrderId OrderPayDate
1 2008-12-31 16:25:46.635

 

 

 

4、DATEDIFF() 函数返回两个日期之间的时间。

语法:

DATEDIFF(datepart,startdate,enddate)

startdate 和 enddate 参数是合法的日期表达式。datepart 参数可以是上图中的值。使用如下 SELECT 语句:

SELECT DATEDIFF(hh,2008-12-29,2008-12-30) AS DiffDate

结果:

DiffDate
24

 

 

5、CONVERT() 函数是把日期转换为新数据类型的通用函数。具体可以看上一篇文章

参考:SQL Date 函数

SQL基本操作——日期函数

标签:date   erp   product   tar   alt   www.   ted   current   参数   

原文地址:http://www.cnblogs.com/wuqiuxue/p/7677712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!