SQLServer Datetime類型轉字符串(帶格式)


一、回顧一下CONVERT()的語法格式: CONVERT (<data_ type="">[ length ], [, style])

二、這里注重說明一下style的含義:style 是將DATATIME 和SMALLDATETIME 數據轉換為字符串時所選用的由SQL Server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式;一般在時間類型(datetime,smalldatetime)與字符串類型(nchar,nvarchar,char,varchar)相互轉換的時候才用到. 三、下表是SQL Server 系統提供的轉換樣式編號:

不帶世紀數位 (yy) 帶世紀數位 (yyyy) 標准 輸入/輸出**
- 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* Hijri** dd mon yyyy hh:mi:ss:mmmAM
- 131* Hijri** dd/mm/yy hh:mi:ss:mmmAM

表中‘*‘表示的含義說明: * 默認值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。 ** 當轉換為 datetime時輸入;當轉換為字符數據時輸出。 * 專門用於 XML。對於從 datetime或 smalldatetime 到 character 數據的轉換,輸出格式如表中所示。對於從 float、money 或 smallmoney 到 character 數據的轉換,輸出等同於 style 2。對於從 real 到 character 數據的轉換,輸出等同於 style 1。 ** Hijri 是具有幾種變化形式的日歷系統,Microsoft? SQL Server? 2000 使用其中的科威特算法。

四、不帶世紀數位的實例代碼(注釋的表示非有效的樣式號):

代碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SELECT CONVERT(varchar(100), GETDATE(), 0) AS Style0 SELECT CONVERT(varchar(100), GETDATE(), 1) AS Style1 SELECT CONVERT(varchar(100), GETDATE(), 2) AS Style2 SELECT CONVERT(varchar(100), GETDATE(), 3) AS Style3 SELECT CONVERT(varchar(100), GETDATE(), 4) AS Style4 SELECT CONVERT(varchar(100), GETDATE(), 5) AS Style5 SELECT CONVERT(varchar(100), GETDATE(), 6) AS Style6 SELECT CONVERT(varchar(100), GETDATE(), 7) AS Style7 SELECT CONVERT(varchar(100), GETDATE(), 8) AS Style8 SELECT CONVERT(varchar(100), GETDATE(), 9) AS Style9 SELECT CONVERT(varchar(100), GETDATE(), 10) AS Style10 SELECT CONVERT(varchar(100), GETDATE(), 11) AS Style11 SELECT CONVERT(varchar(100), GETDATE(), 12) AS Style12 SELECT CONVERT(varchar(100), GETDATE(), 13) AS Style13 SELECT CONVERT(varchar(100), GETDATE(), 14) AS Style14 --SELECT CONVERT(varchar(100), GETDATE(), 15) AS Style15 --SELECT CONVERT(varchar(100), GETDATE(), 16) AS Style16 --SELECT CONVERT(varchar(100), GETDATE(), 17) AS Style17 --SELECT CONVERT(varchar(100), GETDATE(), 18) AS Style18 --SELECT CONVERT(varchar(100), GETDATE(), 19) AS Style19 SELECT CONVERT(varchar(100), GETDATE(), 20) AS Style21 SELECT CONVERT(varchar(100), GETDATE(), 21) AS Style21 SELECT CONVERT(varchar(100), GETDATE(), 22) AS Style22 SELECT CONVERT(varchar(100), GETDATE(), 23) AS Style23 SELECT CONVERT(varchar(100), GETDATE(), 24) AS Style24 SELECT CONVERT(varchar(100), GETDATE(), 25) AS Style25 --SELECT CONVERT(varchar(100), GETDATE(), 26) AS Style26 --SELECT CONVERT(varchar(100), GETDATE(), 27) AS Style27 --SELECT CONVERT(varchar(100), GETDATE(), 28) AS Style28 --SELECT CONVERT(varchar(100), GETDATE(), 29) AS Style29 --SELECT CONVERT(varchar(100), GETDATE(), 30) AS Style30 --SELECT CONVERT(varchar(100), GETDATE(), 31) AS Style31

運行結果:

image

五、帶世紀數位的實例代碼(注釋的表示非有效的樣式號):

代碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SELECT CONVERT(varchar(100), GETDATE(), 100) AS Style100 SELECT CONVERT(varchar(100), GETDATE(), 101) AS Style101 SELECT CONVERT(varchar(100), GETDATE(), 102) AS Style102 SELECT CONVERT(varchar(100), GETDATE(), 103) AS Style103 SELECT CONVERT(varchar(100), GETDATE(), 104) AS Style104 SELECT CONVERT(varchar(100), GETDATE(), 105) AS Style105 SELECT CONVERT(varchar(100), GETDATE(), 106) AS Style106 SELECT CONVERT(varchar(100), GETDATE(), 107) AS Style107 SELECT CONVERT(varchar(100), GETDATE(), 108) AS Style108 SELECT CONVERT(varchar(100), GETDATE(), 109) AS Style109 SELECT CONVERT(varchar(100), GETDATE(), 110) AS Style110 SELECT CONVERT(varchar(100), GETDATE(), 111) AS Style111 SELECT CONVERT(varchar(100), GETDATE(), 112) AS Style112 SELECT CONVERT(varchar(100), GETDATE(), 113) AS Style113 SELECT CONVERT(varchar(100), GETDATE(), 114) AS Style114 --SELECT CONVERT(varchar(100), GETDATE(), 115) AS Style115 --SELECT CONVERT(varchar(100), GETDATE(), 116) AS Style116 --SELECT CONVERT(varchar(100), GETDATE(), 117) AS Style117 --SELECT CONVERT(varchar(100), GETDATE(), 118) AS Style118 --SELECT CONVERT(varchar(100), GETDATE(), 119) AS Style119 SELECT CONVERT(varchar(100), GETDATE(), 120) AS Style121 SELECT CONVERT(varchar(100), GETDATE(), 121) AS Style121 --SELECT CONVERT(varchar(100), GETDATE(), 122) AS Style122 --SELECT CONVERT(varchar(100), GETDATE(), 123) AS Style123 --SELECT CONVERT(varchar(100), GETDATE(), 124) AS Style124 --SELECT CONVERT(varchar(100), GETDATE(), 125) AS Style125 SELECT CONVERT(varchar(100), GETDATE(), 126) AS Style126 SELECT CONVERT(varchar(100), GETDATE(), 127) AS Style127 --SELECT CONVERT(varchar(100), GETDATE(), 128) AS Style128 --SELECT CONVERT(varchar(100), GETDATE(), 129) AS Style129 SELECT CONVERT(varchar(100), GETDATE(), 130) AS Style130 SELECT CONVERT(varchar(100), GETDATE(), 131) AS Style131

運行結果:

image

SQL將datetime轉化為字符串並截取字符串

復制代碼 代碼如下:

1
select sr_child as '孩子姓名', sr_parents as '家長姓名' ,ss_updatetime as '分配時間', left(ss_updatetime,CHARINDEX(' ',ss_updatetime)-1),SUBSTRING(CONVERT(CHAR(19), ss_updatetime, 120),1,10)as '轉換格式並截取后的時間'from dbo.tb_sell_resources,dbo.tb_sell_selldetails where sr_id = ss_rsid and ss_qdstate <> 1 order by ss_updatetime 

image

sql 中字符串截取函數: SUBSTRING(name,start,end) name: 字符串格式的 字段名 start: 規定開始位置(起始值是 1) end:截取字符串結束的位置

sql 中Datetime格式轉換為字符串格式: 2000-01-01 01:01:01(Datetime) CONVERT(CHAR(19), CURRENT_TIMESTAMP, 120)

CURRENT_TIMESTAMP: 當前時間(此處可以寫Datetime格式的字段名,例如ss_updatetime) 其余的參數(CHAR(19), 120等)不用修改 使用之后 2000-01-01 01:01:01(Datetime)變為 2000-01-01 01:01:01(字符串格式)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM