如2010-4-4 00:00:00转成2010-4-4
2009-11-11 00:00:00转成2009-11-11请问有什么办法吗?因为convert(varchar(10),'2010-4-4 00:00:00',120),取出来是2010-4-4 0,请大家帮忙,谢谢!

解决方案 »

  1.   

    to_char(to_date('2010-4-4 00:00:00', 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd')
      

  2.   

    SQL> select to_date('2010-4-4 00:00:00', 'yyyy-mm-dd hh24:mi:ss') from dual;
     
    TO_DATE('2010-4-400:00:00','YY
    ------------------------------
    2010-4-4
      

  3.   

    select trunc(sysdate) from dual;
      

  4.   

    to_char(to_date('2010-11-11 00:00:00', 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd')
      

  5.   

    晕 那我最后要插入数据库时,又要to_date,
    那岂不是to_date(to_char(to_date('2010-4-4 00:00:00', 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd'),'yyyy-mm-dd')
    这样貌似太麻烦了吧
      

  6.   


    date类型,直接
    select trunc(sysdate, 'dd') from dual;
      

  7.   

    如果字段的类型是date型,那么存入值2010-4-4 00:00:00与2010-4-4是一样的,
    当然如果是一个带时间的日期值,如:2010-4-4 15:38:18,trunc就行了,
    如果要从表中取出日期值要控制显示格示可以to_char就行了
      

  8.   

    多谢楼下几位,一开始是char类型的,我是用.net插入的,.net的string
      

  9.   

    to_char(to_date('2010-4-4 00:00:00', 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd'
      

  10.   

    貌似楼上的都给出了,哈哈! 就是倒是想在绘画中改的话就用alter sessioin,要是想在数据库启动改的话就在一开始使用set nls_date