函数 描述 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-ddSELECT 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,date) 实例 SELECT DATEPART(yyyy,OrderDate) AS OrderYear,DATEPART(mm,OrderDate) AS OrderMonth, DATEPART(dd,OrderDate) AS OrderDay FROM Orders WHERE OrderId=1
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
实例
SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate FROM Orders
