標籤:second -- int case time 舉例 idt else sql
一.時間類型的自動轉換函式
CONVERT(varchar(12),getdate(),112 )
原文地址http://penpy.blog.163.com/blog/static/132546191201151011458482/
一.SQL擷取時間方法:
- getdate() 擷取當前系統日期、時間
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
返回代表指定日期的指定日期部分的字串
本年第多少周=datename(week,getdate())
今天是周幾=datename(weekday,getdate())
select datename(dw,‘2004-10-15‘)
SELECT datename(weekday, ‘2004-10-15‘) --返回:星期五
6. day(), month(),year() --可以與datepart對照一下
|
函數 |
功能 |
|
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的值設定如下
|
參數值 |
含義 |
|
Year|yy|yyyy |
擷取年份 |
|
Quarter|Qq|q |
Quarter擷取季節 |
|
Month|Mm|m |
月份1 ~ 12 |
|
Day of year|Dy |y |
一年的日數,一年中的第幾日 1-366 |
|
Weekday|dw|w |
一周的日數,一周中的第幾日 1-7 |
|
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 即星期一 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年
執行個體
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 server中table表的[datetime]欄位值‘2007-11-07 16:41:35.033’
轉化為指定的格式
convert(varchar(12),getdate(),參數值)
|
|
|
|
101 |
09/12/2004 |
|
102 |
2004.09.12 |
|
103 |
12/09/2004 |
|
104 |
12.09.2004 |
|
105 |
12-09-2004 |
|
106 |
12 09 2004 |
|
107 |
09 12, 2004 |
|
108 |
11:06:08 |
|
109 |
09 12 2004 1 |
|
110 |
09-12-2004 |
|
112 |
20040912 |
|
113 |
12 09 2004 1 |
|
114 |
11:06:08.177 |
|
120 |
2007-11-07 00:00:00 |
當前日期=convert(varchar(10),getdate(),120)
目前時間=convert(varchar(8),getdate(),114)
SQL學習總結