关于getdate()的使用问题,很简单!

我得语句如此
update ... WHERE OrderDate =getdate()

但我的OrderDate 字段只保存了如2002-11-6,所以这个where永远满足不了,我该怎么使它满足条件!
3x~
---------------------------------------------------------------

你可以这样先定义一个变量。
declare @date varchar(10)
select @date=datename(year,getdate())+'-'+datename(month,getdate())+'-'+datename(day,getdate())
update ... WHERE OrderDate =@date

---------------------------------------------------------------

1、新建一UDF,语句如下:

/*
功能说明:只取日期部分
*/
CREATE FUNCTION dbo.TruncateDatePart (@ADateTime DateTime)
RETURNS DateTime AS
BEGIN
Set @ADateTime = CAST(@ADateTime as SmallDateTime) --取消秒与毫秒
Set @ADateTime = DateAdd(mi, 0 - DatePart(mi, @ADateTime), @ADateTime) --取消分
Set @ADateTime = DateAdd(hh, 0 - DatePart(hh, @ADateTime), @ADateTime) --取消时

RETURN @ADateTime
END

2、修改你的语句为:

update ... WHERE OrderDate =dbo.TruncateDatePart(getdate())
---------------------------------------------------------------

修改语句为:
update ... where orderdate=convert(varchar(10),getdate(),120)
---------------------------------------------------------------

update ...
WHERE year(OrderDate) =year(getdate())
AND month(OrderDate)=month(getdate())
AND day(OrderDate)=day(getdate())
---------------------------------------------------------------

update ... WHERE datediff(d,OrderDate,getdate())=0

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus