select convert(varchar,getdate(),109)
--结果
08  8 2004  9:56:04:437PM

解决方案 »

  1.   

    这个结果可以存放在datetime类型的字段里面吗?
      

  2.   

    从字符串转换到datetime的时候报错
      

  3.   

    1: 
    select convert(varchar(2),getdate(),109)+'/'+substring(convert(varchar(10),getdate(),120),9,2)+
    +'/'+convert(varchar(4),getdate(),120)+' '+substring(convert(varchar,getdate(),120),12,8)+' '+right(convert(varchar,getdate(),109),2)--运行结果
    08/08/2004 22:06:11 PM2:
    select convert(varchar(2),getdate(),109)+'/'+substring(convert(varchar(10),getdate(),120),9,2)+
    +'/'+convert(varchar(4),getdate(),120)+' '+ substring(convert(varchar,getdate(),120),12,8)+' '+case when right(convert(varchar,getdate(),109),2)='PM' then '下午' else '上午' end
    --结果
    08/08/2004 22:09:23 下午
      

  4.   

    你要的那种格式没有现成的,只能转换,当然你存到数据库的是datetime,smalldatetime
    查询的时候转换成字符串就可以了。把我写的在查询分析器里运行一下就看到效果了
      

  5.   

    to 小二:我在看程序的时候,看到这么一个函数,TO_Date( '01/23/2003 12:00:00 上午', 'MM/DD/YYYY HH:MI:SS AM'),sql server中应该没有的,是个自定义函数,你见过吗,能猜出它大概是作什么用的吗?
      

  6.   

    你可能没有明白我的意思,我在看程序的时候,看到to_date这个函数,在sql中找不到,所以就在自定义函数中自己写了一个,是想把那个已知的时间01/23/2003 12:00:00 上午insert到数据库中的字段类型为datetime的字段中,能否实现?
      

  7.   

    你要知道,在sql中,datetime存储的格式
    select 当前时间=getdate()--结果
    当前时间                                                   
    ------------------------------------------------------ 
    2004-08-09 08:04:29.390我觉得你可以写个函数,专门用来将格式换为你所要的格式(查询显示)如果你想把'01/23/2003 12:00:00 上午'这样的格式完全放到datetime字段里,应该是不行。
      

  8.   

    也就是说datetime类型的字段没有这种时间格式那,我只能将字段格式设置诚varchar了,这样就没问题谢谢你的回复
      

  9.   

    如果你要存到数据库里这种格式,只能是字符型了。
    但是我觉得你没有必要这样做吧,为什么非要存这种格式呢,你select时拿出你要的格式就ok了吧,也许你有特殊需求,呵呵
      

  10.   

    我也不知道是什么要求,这是帮别人作的一个用asp实现将*.sql导入数据库的程序,他给出的数据库中那个字段的类型就是datetime,*.sql中的insert语句中就有一个to_date('01/23/2003 12:00:00 上午', 'MM/DD/YYYY HH:MI:SS AM'),我不知道是作什么用的啊,开始执行的时候,就说不可识别的函数,于是自己就写了一个自定义函数,就是将'01/23/2003 12:00:00 上午'直接insert到数据库中,用的是varchar,所以上来问问能不能用datetime,如果这样不是更好了吗。(注:那个函数要实现的功能我也不清楚,是我自己杜撰出来的,没办法找不到人啦)
      

  11.   

    select convert(varchar,getdate(),9)