SQL學習總結

來源:互聯網
上載者:User

標籤:second   --   int   case   time   舉例   idt   else   sql   

一.時間類型的自動轉換函式

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

原文地址http://penpy.blog.163.com/blog/static/132546191201151011458482/

一.SQL擷取時間方法:

  1. 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學習總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.