1.Datepart()
返回代表指定日期的指定日期部分的整數
語法 Datepart(datepart,date)
返回類型 int
datepart:
日期部分 | 縮寫 |
---|---|
year | yy, yyyy |
quarter | qq, q |
month | mm, m |
dayofyear | dy, y |
day | dd, d |
week | wk, ww |
weekday | dw日期部分返回對應於星期中的某天的數,例如:Sunday =1 |
Hour | hh |
minute | mi, n |
second | ss, s |
millisecond | ms |
declare @date datetime
set @date='2009-12-24 16:35:37.733'
select datepart(year,@date)--2009
select datepart(month,@date)--12
select datepart(day,@date)--24
select datepart(quarter,@date)--4
select datepart(dayofyear,@date)--358
select datepart(weekday,@date)--5
select datepart(week,@date)--52
select datepart(Hour,@date)--16
select datepart(minute,@date)--35
2.DateName()
返回代表指定日期的指定日期部分的字符串
語法 DateName(datepart , date )
返回類型 nvarchar
參數 datepart 同上表格
declare @date datetime
set @date='2009-12-24 16:35:37.733'
select datename(year,@date)--2009
select datename(month,@date)--December
select datename(day,@date)--24
select datename(quarter,@date)--4
select datename(dayofyear,@date)--358
select datename(weekday,@date)--Thursday
select datename(week,@date)--52
select datename(Hour,@date)--16
select datename(minute,@date)--35
3.其他日期函數
declare @date1 datetime,@date2 datetime
set @date1='2009-10-24 16:35:37.733'
set @date2='2009-12-24 16:35:37.733'
select DAY(@date1)--24
select MONTH(@date1)--10 具有確定性
select YEAR (@date1)--2009具有確定性
select DATEPART (dw, @date2)
select GETDATE() 不具有確定性
select GETUTCDATE() 不具有確定性
DATENAME() 不具有確定性
DATEADD(dd,@date1,1) 具有確定性
DATEDIFF 具有確定性
DATEPART 除了用作
DATEPART (dw, date) 外都具有確定性。dw 是工作日的日期部分,取決於由設置每周第一天的 SET DATEFIRST所設置的值。
具有確定性
--判斷是否為時間
selectcast(isdate('2012-06-02 16:26:07.880') asvarchar)
--獲得年
select cast(year('2012-06-0216:26:07.880') as varchar)
selectdatepart(yyyy,'2012-06-02 16:26:07.880')
selectdatename(yyyy,'2012-06-02 16:26:07.880')
--獲得月
select cast(Month('2012-06-0216:26:07.880') as varchar)
selectdatepart(mm,'2012-06-02 16:26:07.880')
selectdatename(mm,'2012-06-02 16:26:07.880')
--獲得日
select cast(day('2012-06-0216:26:07.880') as varchar)
selectdatepart(dd,'2012-06-02 16:26:07.880')
selectdatename(dd,'2012-06-02 16:26:07.880')
--獲得時
selectdatepart(hh,'2012-06-02 16:26:07.880')
selectdatename(hh,'2012-06-02 16:26:07.880')
--獲得分
select datepart(n,'2012-06-0216:26:07.880')
select datename(n,'2012-06-0216:26:07.880')
--獲得秒
selectdatepart(ss,'2012-06-02 16:26:07.880')
selectdatename(ss,'2012-06-02 16:26:07.880')
--毫秒
selectdatepart(ms,'2012-06-02 16:26:07.880')
selectdatename(ms,'2012-06-02 16:26:07.880')
--季節
selectdatepart(qq,'2012-06-02 16:26:07.880')
selectdatename(qq,'2012-06-02 16:26:07.880')
--一年中的第幾天
selectdatepart(dy,'2012-06-02 16:26:07.880')
selectdatename(dy,'2012-06-02 16:26:07.880')
--一年中的第幾周
selectdatepart(wk,'2012-06-02 16:26:07.880')
selectdatename(wk,'2012-06-02 16:26:07.880')
--星期
selectdatepart(dw,'2012-06-02 16:26:07.880') --SET DATEFIRST 7每周第一天
selectdatename(dw,'2012-06-02 16:26:07.880')