Solved

ms sql + update datetime entry

Posted on 2011-03-14
4
293 Views
Last Modified: 2012-06-27
I have a bunch of dates that entered in a table incorrectly, for March 11th, 2011, it entered 11/3/2011, is there a way to update these entries with and update statement, but only changing the date part and keeping the time part the same, as each entry has a time as well as the date.
0
Comment
Question by:dkilby
  • 2
  • 2
4 Comments
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 35130303
If you ONLY want to take the entries where the date portion is 2011-11-03 and cast them back to 2011-03-11...



CREATE TABLE #foo (Dt datetime)

INSERT INTO #foo (Dt) VALUES ('2011-01-15 11:22:33')
INSERT INTO #foo (Dt) VALUES ('2011-03-10 19:47:01')
INSERT INTO #foo (Dt) VALUES ('2011-07-15 11:22:33')
INSERT INTO #foo (Dt) VALUES ('2011-11-03 06:30:00')

SELECT Dt FROM #foo ORDER BY Dt

UPDATE #foo
SET Dt = DATEADD(day, DATEDIFF(day, '2011-11-03', '2011-03-11'), Dt)
WHERE Dt >= '2011-11-03' AND Dt < '2011-11-04'

SELECT Dt FROM #foo ORDER BY Dt

DROP TABLE #foo

Open in new window

0
 

Author Comment

by:dkilby
ID: 35130866
I have a lot of rows, do i have to insert each row into the temp table one row at a time?
0
 
LVL 92

Accepted Solution

by:
Patrick Matthews earned 500 total points
ID: 35131002
No, that was just a demonstration.  You can simply use this, substituting the actual table/column names:

UPDATE [TableName]
SET [DateColumn] = DATEADD(day, DATEDIFF(day, '2011-11-03', '2011-03-11'), [DateColumn])
WHERE [DateColumn] >= '2011-11-03' AND [DateColumn] < '2011-11-04'

Open in new window

0
 

Author Closing Comment

by:dkilby
ID: 35131196
thank you
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you find yourself in this situation “I have used SELECT DISTINCT but I’m getting duplicates” then I'm sorry to say you are using the wrong SQL technique as it only does one thing which is: produces whole rows that are unique. If the results you a…
Composite queries are used to retrieve the results from joining multiple queries after applying any filters. UNION, INTERSECT, MINUS, and UNION ALL are some of the operators used to get certain desired results.​
Via a live example, show how to shrink a transaction log file down to a reasonable size.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now