程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL時間函數 使用教程

SQL時間函數 使用教程

編輯:關於SqlServer
 

1. 當前系統日期、時間
select getdate() 
2. dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000

3. datediff 返回跨兩個指定日期的日期和時間邊界數。
select datediff(day,'2004-09-01','2004-09-18') --返回:17

4. datepart 返回代表指定日期的指定日期部分的整數。
SELECT DATEPART(month, '2004-10-15') --返回 10

5. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五

6. day(), month(),year() --可以與datepart對照一下

select 當前日期=convert(varchar(10),getdate(),120)
,當前時間=convert(varchar(8),getdate(),114)

7. select datename(dw,'2004-10-15')

select 本年第多少周=datename(week,getdate())
,今天是周幾=datename(weekday,getdate())



函數 參數/功能 
GetDate( ) --返回系統目前的日期與時間 
DateDiff (interval,date1,date2) --以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2-date1 
DateAdd (interval,number,date) --以interval指定的方式,加上number之後的日期 
DatePart (interval,date) ---返回日期date中,interval指定部分所對應的整數值 
DateName (interval,date) --返回日期date中,interval指定部分所對應的字符串名稱 

參數 interval的設定值如下:

值 縮 寫(Sql Server) Access 和 ASP 說明 
Year Yy yyyy 年 1753 ~ 9999 
Quarter Qq q 季 1 ~ 4 
Month Mm m 月1 ~ 12 
Day of year Dy y 一年的日數,一年中的第幾日 1-366 
Day Dd d 日,1-31 
Weekday Dw w 一周的日數,一周中的第幾日 1-7 
Week Wk ww 周,一年中的第幾周 0 ~ 51 
Hour Hh h 時0 ~ 23 
Minute Mi n 分鐘0 ~ 59 
Second Ss s 秒 0 ~ 59 
Millisecond Ms - 毫秒 0 ~ 999 

access 和 asp 中用date()和now()取得系統日期時間;其中DateDiff,DateAdd,DatePart也同是能用於Access和asp中,這些函數的用法也類似

舉例:
1.GetDate() 用於sql server :select GetDate()

2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值為 514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值為 5 天

3.DatePart('w','2005-7-25 22:56:32')返回值為 2 即星期一(周日為1,周六為7)
DatePart('d','2005-7-25 22:56:32')返回值為 25即25號
DatePart('y','2005-7-25 22:56:32')返回值為 206即這一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值為 2005即2005年 

SQL Server DATEPART() 函數返回 SQLServer datetime 字段的一部分。 

SQL Server DATEPART() 函數的語法是: 
DATEPART(portion, datetime)

其中 datetime 是 SQLServer datetime 字段和部分的名稱是下列之一: Ms for Milliseconds
Yy for Year
Qq for Quarter of the Year
Mm for Month
Dy for the Day of the Year
Dd for Day of the Month
Wk for Week
Dw for the Day of the Week
Hh for Hour
Mi for Minute
Ss for Second


--1.編寫函數,實現按照'年月日,星期幾,上午下午晚上'輸出時間信息(2009年3月16日星期一下午)
select datename(yy,getdate()) + '年' +
       datename(mm,getdate()) + '月' + 
       datename(dd,getdate()) + '日' +
       datename(weekday,getdate()) +
       case when datename(hh,getdate()) < 12 then '上午' else '下午'end                                                                                                                           
--2.編寫函數,根據輸入時間。輸出該天是該年的第幾天
select datepart(dy,getdate())
--3.求出隨機輸出字符‘a-z
select char(97+abs(checksum(newid()))%26)
select char(97+rand()*26)

sql時間格式化:

select CONVERT(varchar, getdate(), 120)
2004-09-12 11:06:08

select convert(varchar(10),getdate() ,120) 
----------
2009-04-09

select CONVERT(varchar(12) , getdate(), 23 )
2010-06-21


select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

其它我不常用的日期格式轉換方法:

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved