SQL Query problem with update Datetime

what's wrong with this - Startdate is a datetime column?

update sysdba.ACTIVITY
set startdate='2015-11-16 00:00:05.000' where startdate ='2015-10-08' and USERID = 'UORBSA000006'
Chris MichalczukConsultantAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

PortletPaulEE Topic AdvisorCommented:
What do you get from this?

select *
from sysdba.ACTIVITY
where startdate ='2015-10-08' and USERID = 'UORBSA000006'

Do you have permission for updating a sysdba table?
Naitik GamitSoftware DeveloperCommented:
Use same date format  both time as,

update sysdba.ACTIVITY
 set startdate='2015-11-16 00:00:05.000' where startdate ='2015-10-08 00:00:00.000' and USERID = 'UORBSA000006'

Or use only date not datetime as,

update sysdba.ACTIVITY
 set startdate='2015-11-16' where startdate ='2015-10-08' and USERID = 'UORBSA000006'
Chris MichalczukConsultantAuthor Commented:
tried both these but it updates 0 records? any ideas as field is Datetime
Qlemo"Batchelor", Developer and EE Topic AdvisorCommented:
If startdate is a datetime, you'll have to supply the time portion unless it is exactly zero. Probably you have 00:00:05 standing there, and then something like this will work:
update sysdba.ACTIVITY
set startdate='2015-11-16 00:00:05' where startdate between '2015-10-08 00:00:00' and '2015-10-08 00:01:00' and USERID = 'UORBSA000006'

Open in new window

Jim HornMicrosoft SQL Server Data DudeCommented:
<building on the above>

Better to make sure it gets all startdate values with a date component of '2015-10-08', regardless of time
update sysdba.ACTIVITY
set startdate='2015-11-16 00:00:05.000' 
where CAST(startdate as date) = '2015-10-08' 
   and USERID = 'UORBSA000006'

Open in new window

can also use..
where (startdate >= '2015-10-08' AND startdate < '2015-10-09')
   and USERID = 'UORBSA000006'

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server 2008

From novice to tech pro — start learning today.