CodePaste Logo
New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: SQL

A Better Way to remove Time from a SQL DateTime

466 Views
Copy Code Show/Hide Line Numbers
'1/1/2000 1:30 AM' != '1/1/2000 1:31 AM'
 
-- ///
 
DECLARE @x datetime
SET @x = GETDATE()
SET @x = CONVERT(varchar, @x, 101)
 
-- ///
 
DECLARE @x datetime
SET @x = GETDATE()
SET @x = DATEADD(d, DATEDIFF(d, 0, @date), 0)
 
-- ///
 
DECLARE @Table TABLE
   (
   Date1 datetime
   ,Date2 datetime
   ,Date3 date
   )
 
DECLARE @i int
SET @i = 0
WHILE (@i < 1000000)
  BEGIN
    INSERT INTO @Table
    SELECT GetDate() + @i, null, null
    SET @i = @i + 1
  END
      
DECLARE @Timer datetime
 
SET @Timer = getdate()
UPDATE @Table SET Date2 = Date1, Date3 = Date1
PRINT 'Warm Up'
PRINT DateDiff(ms, @Timer, getdate())
 
SET @Timer = getdate()
update @Table Set Date2 = 
   CONVERT(DATETIME, SUBSTRING(CONVERT(varchar, Date1), 1, 11))
PRINT '(English Culture only) Parse with SubString to DateTime'
PRINT DateDiff(ms, @Timer, getdate())
 
SET @Timer = getdate()
update @Table Set Date2 = CONVERT(varchar, Date1, 101)
PRINT 'Convert to Varchar 101 to DateTime'
PRINT DateDiff(ms, @Timer, getdate())
 
SET @Timer = getdate()
update @Table Set Date2 = CONVERT(DATE, Date1)
PRINT '(SQL2008 only) Convert from DateTime to Date to Datetime'
PRINT DateDiff(ms, @Timer, getdate())
 
SET @Timer = getdate()
update @Table Set Date3 = Date1
PRINT '(SQL2008 only) Convert from DateTime to Date'
PRINT DateDiff(ms, @Timer, getdate())
 
SET @Timer = getdate()
update @Table Set Date2 = DATEADD(d, DATEDIFF(d, 0, Date1), 0)
PRINT 'Use DateDiff then DateAdd'
PRINT DateDiff(ms, @Timer, getdate())
by Jerry Nixon
  March 05, 2010 @ 8:53am
Tags:

Add a comment


Report Abuse
brought to you by:
West Wind Techologies



If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate