SQL SERVER 日期格式化、日期和字串轉換

lhrbest發表於2018-07-04

SQL SERVER 日期格式化、日期和字串轉換




sql server 中怎麼把字串轉化為日期?


1. (datetime,'YYYY-MM-DD   HH24:MI:SS')
2. ('YYYY-MM-DD   HH24:MI:SS'   as   datetime)

select convert(datetime,'2018-08-08 08:08:08);




 0   或   100   (*)     預設值   mon   dd   yyyy   hh:miAM(或   PM)     
  1   101   美國   mm/dd/yyyy     
  2   102   ANSI   yy.mm.dd     
  3   103   英國/法國   dd/mm/yy     
  4   104   德國   dd.mm.yy     
  5   105   義大利   dd-mm-yy     
  6   106   -   dd   mon   yy     
  7   107   -   mon   dd,   yy     
  8   108   -   hh:mm:ss     
  -   9   或   109   (*)     預設值   +   毫秒   mon   dd   yyyy   hh:mi:ss:mmmAM(或   PM)     
  10   110   美國   mm-dd-yy     
  11   111   日本   yy/mm/dd     
  12   112   ISO   yymmdd     
  -   13   或   113   (*)     歐洲預設值   +   毫秒   dd   mon   yyyy   hh:mm:ss:mmm(24h)     
  14   114   -   hh:mi:ss:mmm(24h)     
  -   20   或   120   (*)     ODBC   規範   yyyy-mm-dd   hh:mm:ss[.fff]     
  -   21   或   121   (*)     ODBC   規範(帶毫秒)   yyyy-mm-dd   hh:mm:ss[.fff]     
  -   126(***)   ISO8601   yyyy-mm-dd   Thh:mm:ss:mmm(不含空格)     
  -   130*   科威特   dd   mon   yyyy   hh:mi:ss:mmmAM     
  -   131*   科威特   dd/mm/yy   hh:mi:ss:mmmAM   


 

Sql Server 中一個非常強大的日期格式化函式
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM


常用:
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

 

SQL中CONVERT轉化函式的用法

CONVERT的使用方法:

////////////////////////////////////////////////////////////////////////////////////////

格式:
CONVERT(data_type,e?xpression[,style])

說明:
此樣式一般在時間型別(datetime,smalldatetime)與字串型別(nchar,nvarchar,char,varchar)
相互轉換的時候才用到.

例子:
Select CONVERT(varchar(30),getdate(),101) now
結果為
now
---------------------------------------
09/15/2001

/////////////////////////////////////////////////////////////////////////////////////

style數字在轉換時間時的含義如下

-------------------------------------------------------------------------------------------------
Style(2位表示年份) | Style(4位表示年份) | 輸入輸出格式 
-------------------------------------------------------------------------------------------------
- | 0 or 100 | mon dd yyyy hh:miAM(或PM) 
-------------------------------------------------------------------------------------------------
1 | 101 | mm/dd/yy 
-------------------------------------------------------------------------------------------------
2 | 102 | yy-mm-dd 
-------------------------------------------------------------------------------------------------
3 | 103 | dd/mm/yy 
-------------------------------------------------------------------------------------------------
4 | 104 | dd-mm-yy 
-------------------------------------------------------------------------------------------------
5 | 105 | dd-mm-yy 
-------------------------------------------------------------------------------------------------
6 | 106 | dd mon yy 
-------------------------------------------------------------------------------------------------
7 | 107 | mon dd,yy 
-------------------------------------------------------------------------------------------------
8 | 108 | hh:mm:ss 
-------------------------------------------------------------------------------------------------
- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
-------------------------------------------------------------------------------------------------
10 | 110 | mm-dd-yy 
-------------------------------------------------------------------------------------------------
11 | 111 | yy/mm/dd 
-------------------------------------------------------------------------------------------------
12 | 112 | yymmdd 
-------------------------------------------------------------------------------------------------
- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小時制) 
-------------------------------------------------------------------------------------------------
14 | 114 | hh:mi:ss:mmm(24小時制) 
-------------------------------------------------------------------------------------------------
- | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小時制) 
-------------------------------------------------------------------------------------------------
- | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小時制)



1、日期時間轉字串

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006  10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select  CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100),  GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4):  16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select  CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100),  GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8):  10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006  10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10):  05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select  CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100),  GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100),  GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20):  2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16  10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47  AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select  CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100),  GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100),  GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(),  101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102):  2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select  CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select  CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select  CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select  CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select  CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100),  GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100),  GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111):  2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select  CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select  CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select  CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select  CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select  CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select  CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427  10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427  10:57:49:920AM

2、Sql Server日期與時間函式

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)

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

select 本年第多少周=datename(week,'2004-10-15'),今天是周幾=datename(weekday,'2004-10-15')

3、SQL Server日期函式     引數/功能

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中,這些函式的用法也類似。

4、SQL Server日期函式舉例

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年

 









小麥苗課程

小麥苗課堂開課啦,如下是現有的課程,歡迎諮詢小麥苗:


課程名稱

課時

上課時間

價格

OCP(從入門到專家)

每年1期,35課時左右/

2000-2200

1588(可優惠)

OCM認證

每年N期,9課時/

2000-2200

22888

高可用課程(rac+dg+ogg

每年1期,20課時左右/

2000-2200

1888(可優惠)

Oracle初級入門

每年1期,15課時左右/

2000-2200

800

Oracle健康檢查指令碼

可weixin或微店購買。

88

Oracle資料庫技能直通車

包含如下3個課程:

①《11g OCP網路課程培訓》(面向零基礎) 價值1600

②《11g OCM網路班課程培訓》(Oracle技能合集)價值10000+

③《RAC + DG + OGG 高可用網路班課程》 價值2000

以上3個課程全部打包只要5888,只要5888所有課程帶回家,終身指導!所有課程都是線上講課,不是播放影片,課件全部贈送!

注意:以上OCPOCM課程只包括培訓課程,不包括考試費用。OCM提供培訓+影片,但是不提供練習環境和資料。報名一次,OCP和高可用的課程可以免費終身迴圈聽課。

5888

OCP+高可用(rac+dg+ogg

報名OCP+高可用課程,可以優惠300元,優惠後的價格為3188.

3188(可優惠)

注意:

1、每次上課前30分鐘答疑。

2、OCM實時答疑,提供和考試一樣的練習模擬環境,只要按照老師講的方式來練習,可以保證100%透過。

3、授課方式:YY語音網路直播講課(非影片) + QQ互動答疑 + 影片複習

4、OCP課時可以根據大家學習情況進行增加或縮減。

5、以上所有課程均可迴圈聽課。

6、12c OCM課程私聊。

7、Oracle初級入門課程,只教大家最實用+最常用的Oracle操作維護知識。

8、以上所有課程,可以加小麥苗weixin(lhrbestxh)或QQ(646634621)詳聊,優惠多多。
 


培訓專案

連線地址

DB筆試面試歷史連線

http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

OCP培訓說明連線

https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA

OCM培訓說明連線

https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA

高可用(RAC+DG+OGG)培訓說明連線

https://mp.weixin.qq.com/s/4vf042CnOdAD8zDyjUueiw

OCP最新題庫解析歷史連線(052)

http://mp.weixin.qq.com/s/bUgn4-uciSndji_pUbLZfA

微店地址





About Me

.............................................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人weixin公眾號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文部落格園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:

.............................................................................................................................................

● QQ群號:230161599(滿)、618766405

● weixin群:可加我weixin,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友646634621,註明新增緣由

● 於 2018-07-01 06:00 ~ 2018-07-31 24:00 在魔都完成

● 最新修改時間:2018-07-01 06:00 ~ 2018-07-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班http://blog.itpub.net/26736162/viewspace-2148098/

.............................................................................................................................................

使用weixin客戶端掃描下面的二維碼來關注小麥苗的weixin公眾號(xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗weixin,學習最實用的資料庫技術。

小麥苗的微信公眾號小麥苗的DBA寶典QQ群2小麥苗的微信二維碼小麥苗的微店

   小麥苗的weixin公眾號      小麥苗的DBA寶典QQ群2       小麥苗的weixin二維碼          小麥苗的微店

.............................................................................................................................................

SQL SERVER 日期格式化、日期和字串轉換
歡迎與我聯絡





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2157290/,如需轉載,請註明出處,否則將追究法律責任。

相關文章