MSSQL获取日期的各种格式与各个部分

来源:互联网 发布:计算机算法基础第三版 编辑:程序博客网 时间:2024/05/16 11:38

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

年 月 日部分还可以用过year(getdate()) 、month(getdate()) 、day(getdate()) 去获取。

 

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

 

 

1 SELECT CONVERT(varchar(100),GETDATE(),0)05920119:12AM
2  SELECTCONVERT(varchar(100),GETDATE(),1)05/09/11
3 SELECTCONVERT(varchar(100),GETDATE(),2)11.05.09
4 SELECTCONVERT(varchar(100),GETDATE(),3)09/05/11
5 SELECTCONVERT(varchar(100),GETDATE(),4)09.05.11
6 SELECTCONVERT(varchar(100),GETDATE(),5)09-05-11
7 SELECTCONVERT(varchar(100),GETDATE(),6)090511
8 SELECTCONVERT(varchar(100),GETDATE(),7)0509,11
9 SELECTCONVERT(varchar(100),GETDATE(),8)09:13:14
10 SELECTCONVERT(varchar(100),GETDATE(),9)05920119:13:14:670AM
11 SELECTCONVERT(varchar(100),GETDATE(),10)05-09-11
12 SELECTCONVERT(varchar(100),GETDATE(),11)11/05/09
13 SELECTCONVERT(varchar(100),GETDATE(),12)110509
14 SELECTCONVERT(varchar(100),GETDATE(),13)0905201109:13:14:670
15 SELECTCONVERT(varchar(100),GETDATE(),14)09:13:14:670
16 SELECTCONVERT(varchar(100),GETDATE(),20)2011-05-0909:13:14
17 SELECTCONVERT(varchar(100),GETDATE(),21)2011-05-0909:13:14.670
18 SELECTCONVERT(varchar(100),GETDATE(),22)05/09/119:15:33 AM
19 SELECTCONVERT(varchar(100),GETDATE(),23)2011-05-09
20 SELECTCONVERT(varchar(100),GETDATE(),24)09:15:33
21 SELECTCONVERT(varchar(100),GETDATE(),25)2011-05-0909:15:33.140
22 SELECTCONVERT(varchar(100),GETDATE(),100)05920119:15AM
23 SELECTCONVERT(varchar(100),GETDATE(),101)05/09/2011
24 SELECTCONVERT(varchar(100),GETDATE(),102)2011.05.09
25 SELECTCONVERT(varchar(100),GETDATE(),103)09/05/2011
26 SELECTCONVERT(varchar(100),GETDATE(),104)09.05.2011
27 SELECTCONVERT(varchar(100),GETDATE(),105)09-05-2011
28 SELECTCONVERT(varchar(100),GETDATE(),106)09052011
29 SELECTCONVERT(varchar(100),GETDATE(),107)0509,2011
30 SELECTCONVERT(varchar(100),GETDATE(),108)09:16:38
31 SELECTCONVERT(varchar(100),GETDATE(),109)05920119:16:38:543AM
32 SELECTCONVERT(varchar(100),GETDATE(),110)05-09-2011
33 SELECTCONVERT(varchar(100),GETDATE(),111)2011/05/09
34 SELECTCONVERT(varchar(100),GETDATE(),112)20110509
35 SELECTCONVERT(varchar(100),GETDATE(),113)0905201109:17:19:857
36 SELECTCONVERT(varchar(100),GETDATE(),114)09:17:19:857
37 SELECTCONVERT(varchar(100),GETDATE(),120)2011-05-0909:17:19
38 SELECTCONVERT(varchar(100),GETDATE(),121)2011-05-0909:17:19.857
39 SELECTCONVERT(varchar(100),GETDATE(),126)2011-05-09T09:17:19.857
40 SELECTCONVERT(varchar(100),GETDATE(),130)6 ????? ???????14329:17:19:857AM
41 SELECTCONVERT(varchar(100),GETDATE(),131)6/06/14329:17:19:857AM 

 

SQL中取日期的小时

 

返回表示指定日期的指定日期部分的整数。

语法

DATEPART ( datepart , date )


参数
datepart
指定要返回的日期部分的参数。有关详细信息,请参阅本主题后面的“备注”部分。

date
返回 datetime 值(或可隐式转换为 datetime 值的值)的表达式。date 参数也可以是日期格式的字符串。datetime 数据类型仅用于 1753 年 1 月 1 日之后的日期。 对于之前的日期,将存储为字符数据。在输入 datetime 值时,请始终使用单引号将它们括起来。

如果只指定年份的后两位数字,小于或等于两位截止年份配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果两位数字的截止年份是 2049(默认值),则“49”将被解释为 2049,而“50”将被解释为 1950。为了避免产生歧义,请使用四位年份。

有关指定日期的详细信息,请参阅数据类型中的 datetime。

返回值
int

备注
下表列出了 Microsoft SQL Server 2005 Mobile Edition 可识别的 datepart 选项和缩写:

日期部分  缩写 
年份  yy、yyyy

季度  qq、q

月份  mm、m

每年的某一日  dy、y

日期  dd、d

星期  wk、ww

工作日 dw

小时  hh

分钟  mi、n

秒  ss、s

毫秒  ms

 

 

sql获取本周,本月,本季度

本周:select * from table where datediff(week,C_CALLTIME,getdate())=0     --C_CALLTIME 为日期字段
本月:select * from table where datediff(Month,C_CALLTIME,getdate())=0   --C_CALLTIME 为日期字段
本季:select * from table where datediff(qq,C_CALLTIME,getdate())=0
前半年1-6,后半年7-12:select * from table where datepart(mm,C_CALLTIME)/7 = datepart(mm,getdate())/7

原创粉丝点击