我得语句如此
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