'2003-01-07 15:21:14.953'认为是CHAR型,不是DATETEIM型。
比较
select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),11)select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',11)

解决方案 »

  1.   

    登山兄,我不明白了,为什么上一句会把分秒信息去掉
    我运行
    select DATEADD(ss,1,'2003-01-07 15:21:14.953')
    出来还是
    2003-01-07 15:21:15.953

    怎么再convert一下就没了后面的?
      

  2.   

    不太清楚,关注。
    sqlserver2000中,是下一句输出'.953' ,而不是上一句。
      

  3.   

    DATEADD(ss,1,'2003-01-07 15:21:14.953')
    返回的是日期型
    '2003-01-07 15:21:14.953' 是CAHR 
    比較:
    select CONVERT(VARCHAR(23),getdate(),120)
    select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',120)
      

  4.   

    我发现我运行四句话的结果有三句都不一样,和楼上楼下说得也不一样,
    看来和机器环境很有关系
    我的结果如下,win2000ads+sql2000select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),120)
    2003-01-07 15:21:15select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',120)
    2003-01-07 15:21:14.953select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),11)
    03/01/07select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',11)
    2003-01-07 15:21:14.953
      

  5.   

    再比較一下:
    select CONVERT(VARCHAR(23),getdate(),120)select CONVERT(VARCHAR(58),getdate(),120)
      

  6.   

    哦,我懂了,我怎么就不仔细想一下再问哪?(自己拍自己n下)
    convert, 11
    出来格式
    11 111 日本 yy/mm/dd convert 120
    出来格式
    20 或 120 (*)  ODBC 规范 yyyy-mm-dd hh:mm:ss 至于那些没有dateadd的,当作字符串处理,当然是进去什么就出来什么了
      

  7.   

    convert日期转换格式为120时,得到的字符串是不带毫秒的。如果要带毫秒,将之改为121即可:
    select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),121)
      

  8.   

    实际上看一下 就清楚了
    不带世纪数位(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*             科威特     dd mon yyyy hh:mi:ss:mmmAM 
    -                  131*              科威特   dd/mm/yy hh:mi:ss:mmmAM