Date 和 Time 样式

不带世纪数位 (yy) (1) 带世纪数位 (yyyy) 标准 输入/输出 (3)

-

0100 (1,2)

默 认

mon dd yyyy hh:miAM(或 PM)

1

101

美 国

mm/dd/yyyy

2

102

ANSI

yy.mm.dd

3

103

英 国/法国

dd/mm/yyyy

4

104

德 国

dd.mm.yy

5

105

意 大利

dd-mm-yy

6

106(1)

-

dd mon yy

7

107(1)

-

mon dd, yy

8

108

-

hh:mi:ss

-

9109 (1,2)

默 认设置 + 毫秒

mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10

110

美 国

mm-dd-yy

11

111

日 本

yy/mm/dd

12

112

ISO

yymmdd

yyyymmdd

-

13113 (1,2)

欧 洲默认设置 + 毫秒

dd mon yyyy hh:mi:ss:mmm(24h)

14

114

-

hh:mi:ss:mmm(24h)

-

20120 (2)

ODBC 规范

yyyy-mm-dd hh:mi:ss(24h)

-

21121 (2)

ODBC 规范(带毫秒)

yyyy-mm-dd hh:mi:ss.mmm(24h)

-

126 (4)

ISO8601

yyyy- mm-ddThh:mi:ss.mmm(无空格)

-

127(6, 7)

带时区 Z 的 ISO8601。

yyyy-mm-ddThh:mi:ss.mmmZ

(无 空格)

-

130 (1,2)

回历 (5)

dd mon yyyy hh:mi:ss:mmmAM

-

131 (2)

回历 (5)

dd/mm/yy hh:mi:ss:mmmAM

 

-- 语句及查询结果:
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

对上面进行动态生成字符串:

declare   @sql1   nvarchar ( 200 ), @sql2   nvarchar ( 200 )
declare   @count   nvarchar ( 100 );
set   @sql1   =   ' SELECT CONVERT(varchar(100), GETDATE(), 0) '
set   @sql2   =   ' SELECT @count = CONVERT(varchar(100), GETDATE(), 0) '
exec  sp_executesql   @sql2 ,N ' @count nvarchar(50) out ' , @count  out
print   @sql1   + ' ' +   @count

 

-- SQL Server 仅保证往返转换(即从原始数据类型进行转换后又返回原始数据类型的转换)在各版本间产生相同值。
DECLARE   @myval   decimal  ( 5 2 )
SET   @myval   =   193.57
SELECT   CAST ( CAST ( @myval   AS   varbinary ( 20 ))  AS   decimal ( 10 , 5 ))
--  Or, using CONVERT
SELECT   CONVERT ( decimal ( 10 , 5 ),  CONVERT ( varbinary ( 20 ),  @myval ))
-- 输出193.57000
--
输出193.57000

 

-- bigint数据类型的字段截取(其它类型也一样)
select   substring ( CONVERT ( varchar ( 15 ),字段名), 11 , 9 from  表名
select   substring ( cast (字段名  as   varchar ( 50 ), 6 , 9 ))  from  表名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值