数据库原格式为,tm列,2009-01-03 17:05:00.000,现在需要的格式是 09/01/03 下午 5:05
这个应该怎么转换啊?直接在查询分析器里面使用

解决方案 »

  1.   

    declare @time datetime 
    set @time='2009-01-03 17:05:00.000'
    select right(CONVERT(varchar(10) , @time, 111 ),8)+' '+'下午'+' '+left(CONVERT(varchar(12) , @time, 108 ),5)
    /*--------------------------
    09/01/03 下午 17:05(1 行受影响)*/
      

  2.   

    写个存储过程。判断是否是下午还是上午。然后用下面的格式来写就可以了。--上午
    select right(convert(char(10),getdate(),111),8) + ' 上午 ' + right(left(convert(char(8),getdate(),108),5),4);--下午
    select right(convert(char(10),getdate(),111),8) + ' 下午 ' + right(left(convert(char(8),dateadd(hour,-12,getdate()),108),5),4);
      

  3.   

    declare @tm datetime
    set @tm='2009-01-03 17:05:00.000'
    select  right(replace(replace(left(convert(nvarchar(20),@tm,120),16),'-','/'),' ',' 下午 '),17)/*
    -----------------
    09/01/03 下午 17:05(1 行受影响)
    */
      

  4.   

    嗯,很感谢大家的热心解答,但是好像都不行~~是不是我没有说清楚啊
    在tm列,一共几万行
    2009-08-07 17:00:00.000
    2009-08-07 20:00:00.000
    2009-08-07 23:00:00.000
    2009-08-08 02:00:00.000
    2009-08-08 05:00:00.000
    2009-08-08 08:00:00.000
    2009-08-08 11:00:00.000我现在要把它转为
    yy-mm-dd am hh:mi的格式
    因为一直都是使用的oracle,sql server的不知道怎么操作了,我现在不是在开发程序,只是要从查询分析器里面调用而已oracle里面的查询格式应该是 select to_char(tm,'yy-mm-dd am hh:mi') from table ,我不知道sql里面有没有类似的格式转换函数。happy的那个解决方案是什么意思?我没有看懂,你说的该不是怎么改系统显示时间吧???
      

  5.   


    use test
    declare @time datetime
    set @time='2009-01-03 17:05:00.000'
    select convert(char(20),@time,111),
    case
    when left(convert(char(20),@time,108),5)>='12:00' then '下午'
    when left(convert(char(20),@time,108),5)<'12:00' then '上午'
    end,
    case
    when left(convert(char(20),@time,108),5)>='12:00' then left(convert(char(2),@time,108),2)-12
    when left(convert(char(20),@time,108),5)<'12:00'  then left(convert(char(10),@time,108),5)
    end
    结果
    2009/01/03           下午 5
    高手改下。。
    学习。。
    不会传代码
      

  6.   

    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 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
      

  7.   

    select 
    convert(char(20),tm,22),
    convert(char(20),tm,100),
    convert(char(20),tm,109) from table你看看合适不 
      

  8.   

    我看了一下,kiaqew给出的办法也并不完全符合我的要求,不过还是很感谢,是不是没有更合适的办法了?就没有和oracle一样简单的么?我是个小白,完全属于赶鸭子上架跑来管理数据库的,麻烦大家了。不好意思,我再等等,实在没有就结贴了。