SqlServer日期函数常用操作

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

在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate() 
用DateName()就可以获得相应的年、月、日,然后再把它们连接起来就可以了:
Select Datename(year,GetDate())+'-'+Datename
(month,GetDate())+'-'+Datename(day,GetDate())


另外,DateName()还可以获得到小时、时间、秒、星期几、第几周,分别如下:

Select Datename(hour,GetDate())
Select Datename(minute,GetDate())
Select Datename(second,GetDate())
Select Datename(weekDay,GetDate())
Select Datename(week,GetDate())

SQL中的日期类型DateTime的默认格式就是yyyy-mm-dd hh:mi:ss: mmm,可大多数的情况我们只想得到他的日期部分,而不许要后面的时间。上一篇中提到用Datename()函数来截取拼接出不包含时间部分的日期,现在再说一种方法,更加简单的获取到不包含时间的日期!

使用Convert()函数:
select convert(char(10),GetDate(),120) as Date
* 第3个参数就是用来设置日期类型数据的显示样式的,下面介绍几种样式的参数

100   mm dd yyyy
101   mm/dd/yyyy
102   yyyy.mm.dd
103   dd/mm/yyyy
106   dd mm yyyy
108   hh:mi:ss(时间)
111   yyyy/mm/dd
112   yyyymmdd
120   yyyy-mm-dd

SELECT CONVERT(varchar(100), GETDATE(), 0) 05 9 2011 9:12AM

 SELECT CONVERT(varchar(100), GETDATE(), 1) 05/09/11
  SELECT CONVERT(varchar(100), GETDATE(), 2) 11.05.09
SELECT CONVERT(varchar(100), GETDATE(), 3) 09/05/11
SELECT CONVERT(varchar(100), GETDATE(), 4) 09.05.11
 SELECT CONVERT(varchar(100), GETDATE(), 5) 09-05-11
 SELECT CONVERT(varchar(100), GETDATE(), 6) 09 05 11
 SELECT CONVERT(varchar(100), GETDATE(), 7) 05 09, 11
 SELECT CONVERT(varchar(100), GETDATE(), 8) 09:13:14
 SELECT CONVERT(varchar(100), GETDATE(), 9) 05  9 2011  9:13:14:670AM
 SELECT CONVERT(varchar(100), GETDATE(), 10) 05-09-11
 SELECT CONVERT(varchar(100), GETDATE(), 11) 11/05/09
 SELECT CONVERT(varchar(100), GETDATE(), 12) 110509
 SELECT CONVERT(varchar(100), GETDATE(), 13) 09 05 2011 09:13:14:670
 SELECT CONVERT(varchar(100), GETDATE(), 14) 09:13:14:670
 SELECT CONVERT(varchar(100), GETDATE(), 20) 2011-05-09 09:13:14
 SELECT CONVERT(varchar(100), GETDATE(), 21) 2011-05-09 09:13:14.670
 SELECT CONVERT(varchar(100), GETDATE(), 22) 05/09/11  9:15:33 AM
 SELECT CONVERT(varchar(100), GETDATE(), 23) 2011-05-09
 SELECT CONVERT(varchar(100), GETDATE(), 24) 09:15:33
 SELECT CONVERT(varchar(100), GETDATE(), 100) 05  9 2011  9:15AM
 SELECT CONVERT(varchar(100), GETDATE(), 101) 05/09/2011
 SELECT CONVERT(varchar(100), GETDATE(), 102) 2011.05.09
 SELECT CONVERT(varchar(100), GETDATE(), 103) 09/05/2011
 SELECT CONVERT(varchar(100), GETDATE(), 104) 09.05.2011
 SELECT CONVERT(varchar(100), GETDATE(), 105) 09-05-2011
 SELECT CONVERT(varchar(100), GETDATE(), 106) 09 05 2011
 SELECT CONVERT(varchar(100), GETDATE(), 107) 05 09, 2011
 SELECT CONVERT(varchar(100), GETDATE(), 109) 05  9 2011  9:16:38:543AM
 SELECT CONVERT(varchar(100), GETDATE(), 110) 05-09-2011
 SELECT CONVERT(varchar(100), GETDATE(), 111) 2011/05/09
 SELECT CONVERT(varchar(100), GETDATE(), 112) 20110509
 SELECT CONVERT(varchar(100), GETDATE(), 113) 09 05 2011 09:17:19:857
 SELECT CONVERT(varchar(100), GETDATE(), 114) 09:17:19:857
 SELECT CONVERT(varchar(100), GETDATE(), 121) 2011-05-09 09:17:19.857
 SELECT CONVERT(varchar(100), GETDATE(), 126) 2011-05-09T09:17:19.857
 SELECT CONVERT(varchar(100), GETDATE(), 131)  6/06/1432  9:17:19:857AM

DATEPART() 定义和用法

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

语法

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


  DATEADD定义和用法

DATEADD(datepart,number,date)

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

实例

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

DATEDIFF()定义和用法

DATEDIFF() 函数返回两个日期之间的时间。
DATEDIFF(datepart,startdate,enddate)
实例
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值