SELECT convert(varchar(10), GETDATE(), 120) 你是要这样的吗?

解决方案 »

  1.   

    select convert(datetime,convert(char(8),getdate(),112))
      

  2.   

    select 日期=convert(varchar(10),getdate(),120)  --字符串日期         
    ---------- 
    2004-08-01select 日期=convert(datetime,convert(char(8),getdate(),112)) --datatime日期                                                  
    ------------------------------------------------------ 
    2004-08-01 00:00:00.000
      

  3.   

    只有datetime和smalldatetime,要不带时间,只有用字符串
      

  4.   

    select date=convert(varchar(10),getdate(),111)  --字符串
      

  5.   

    是我没说清楚,不带时间就是让时间全部为0,这是因为查询中不需要比较时间,然而直接用GETDATE()获得的日期总带上时间,写入表中,就会出现:select * from table1 where 日期='2000-1-1' 的查询找不到日期为'2000-1-1 11:12:13'的记录,所以有此一问。另外,大家认为我这种方法:
    select dateadd(day, datediff(day, '1900-1-1', getdate()),'1900-1-1')与:
    SELECT cast(convert(varchar(10), GETDATE(), 120) as datetime)哪个更有效率?
      

  6.   

    --你自己运行一下看看,我机器有点问题了。我只是觉得你第一个写的不太好,先减再加,
    --没什么意义啊
    declare @i int
    set @i=1
    while @i<10000
      begin
      select dateadd(day, datediff(day, '1900-1-1', getdate()),'1900-1-1')
      set  @i=@i+1
      end 
      
    declare @i int
    set @i=1
    while @i<10000
      begin
      SELECT cast(convert(varchar(10), GETDATE(), 120) as datetime)
      set  @i=@i+1
      end
      

  7.   

    但结果是第一种方法用时130-150ms,第二种是390-400ms