是我没说清楚,不带时间就是让时间全部为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)哪个更有效率?
--你自己运行一下看看,我机器有点问题了。我只是觉得你第一个写的不太好,先减再加, --没什么意义啊 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
----------
2004-08-01select 日期=convert(datetime,convert(char(8),getdate(),112)) --datatime日期
------------------------------------------------------
2004-08-01 00:00:00.000
select dateadd(day, datediff(day, '1900-1-1', getdate()),'1900-1-1')与:
SELECT cast(convert(varchar(10), GETDATE(), 120) as datetime)哪个更有效率?
--没什么意义啊
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