Date 和 Time 样式

    技术2022-05-19  23

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

    -

    0 或 100 (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

    -

    9 或 109 (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

    -

    13 或 113 (1,2)

    欧 洲默认设置 + 毫秒

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

    14

    114

    -

    hh:mi:ss:mmm(24h)

    -

    20 或 120 (2)

    ODBC 规范

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

    -

    21 或 121 (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)