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

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
----------------------
DatePart函数 返回   
返回一个包含已知日期的指定时间部分的 Variant (Integer)。   
语法   
DatePart(interval, date[,firstdayofweek[, firstweekofyear]])   
DatePart 函数语法中有下列命名参数:   
部分 描述   
interval 必要。字符串表达式,是要返回的时间间隔。   
date 必要。要计算的 Variant (Date) 值。   
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。   
firstweekofyear 可选。指定一年第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。   
设置   
interval 参数的设定值如下:   
设置 描述   
yyyy 年   
q 季   
m 月   
y 一年的日数   
d或dd 日   
w或dw 一周的日数   
ww 周   
h 时   
n 分钟   
s 秒   
firstdayofweek 参数的设定值如下:   
常数 值 描述   
vbUseSystem 0 使用 NLS API 设置。   
vbSunday 1 星期日(缺省值)   
vbMonday 2 星期一   
vbTuesday 3 星期二   
vbWednesday 4 星期三   
vbThursday 5 星期四   
vbFriday 6 星期五   
vbSaturday 7 星期六   
firstweekofyear 参数的设定值如下:   
常数 值 描述   
vbUseSystem 0 使用 NLS API 设置。   
vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。   
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。   
vbFirstFullWeek 3 从第一个无跨年度的星期开始。   
说明   
DatePart 函数可以用来计算日期并返回指定的时间间隔。例如,可以使用DatePart 计算某个日期是星期几或目前为几点钟。   firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。   
如果 date 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date 用双引号(“”)括起来,且年份略而不提,则在每次计算 date 表达式时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。