数据表中的时间是精确到秒的,我需要格式化为短时间的yyyy-MM-dd的形式,但是需要依然是datetime类型字段,所以不能用CONVERT(varchar(),xx,xx),有什么方法吗,应该很简单的一个问题PS 本来发在数据库开发的 貌似没人理

解决方案 »

  1.   

    convert(varchar(10),fatime,120)2002-02-01
    convert(varchar(10),fatime,111)2002/2/22
      

  2.   

    convert(varchar(10),fatime,111)2002/02/22
      

  3.   

    datetime怎么显示实质还是datetime类型yyyy-MM-dd只是你显示的结果,是字符类型,要是保持datetime类型不变,又不是这个结果了所以你的问题,不好回答
      

  4.   

    哥们 不是说了不能转成varchar吗貌似是这么回事  但是现在有这个需求 能有什么方法吗
      

  5.   

    我试着这么写 ,但是报错:从字符串转换为datetime时发生语法错误CONVERT (datetime,CONVERT(varchar(100),OperateTime,23),23)
      

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

  7.   

    具体参考 
    http://www.cnblogs.com/kevin-top/archive/2010/03/17/1688046.html
      

  8.   

    convert(datetime,convert(varchar(10),fatime,120))
    再转成datetime啊
      

  9.   

    依然是datetime类型,所以肯定会精确到秒,哪怕后面都是0,你想格式化成0000-00-00不好弄,估计行不通
      

  10.   

    http://hi.csdn.net/invite.php?u=3370434&c=9cb528505d2f42a0 加好友谢谢!
      

  11.   

    DateTime.Parse(DateTime.Now.ToShortDateString());
      

  12.   

    为什么必须要在SQL里解决这问题呢?应该是拿出来后在程序里处理,只要显示界面是datetime..ToShortDateString()样式就可以了吧,数据库里的格式不用去动它