<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Chris Crowe's Blog</title>
        <link>http://blog.crowe.co.nz/Default.aspx</link>
        <description>Ramblings of an IIS MVP ( MVP Since 1997 )</description>
        <language>en-NZ</language>
        <copyright>Chris Crowe</copyright>
        <managingEditor>blog@crowe.co.nz</managingEditor>
        <generator>Subtext Version 1.9.4.0</generator>
        <image>
            <title>Chris Crowe's Blog</title>
            <url>http://blog.crowe.co.nz/images/RSS2Image.gif</url>
            <link>http://blog.crowe.co.nz/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Looking for some new sounds &amp;ndash; checkout this freebee</title>
            <link>http://blog.crowe.co.nz/archive/2009/07/18/Looking-for-some-new-sounds-ndash-checkout-this-freebee.aspx</link>
            <description>&lt;p&gt;Click to download new music, completely free, brought to you by your music loving friends at Windows. You'll see (but not hear) some ads on your screen in addition to the album's cover art, which is how we (they) keep your new tunes from costing you a cent.&lt;/p&gt;  &lt;p&gt;Well worth a listen to checkout some new bands and artists….&lt;/p&gt;  &lt;p&gt;Listen online, download MP3 or WMA&lt;/p&gt;  &lt;p&gt;&lt;a title="http://sponsoredsongs.reverbnation.com/windows?utm_source=windows_myspace_page&amp;amp;utm_medium=button_link&amp;amp;utm_campaign=ms_windows&amp;amp;utm_content=thousand_more" href="http://sponsoredsongs.reverbnation.com/windows?utm_source=windows_myspace_page&amp;amp;utm_medium=button_link&amp;amp;utm_campaign=ms_windows&amp;amp;utm_content=thousand_more"&gt;http://sponsoredsongs.reverbnation.com/windows?utm_source=windows_myspace_page&amp;amp;utm_medium=button_link&amp;amp;utm_campaign=ms_windows&amp;amp;utm_content=thousand_more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.crowe.co.nz/aggbug/923.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Crowe</dc:creator>
            <guid>http://blog.crowe.co.nz/archive/2009/07/18/Looking-for-some-new-sounds-ndash-checkout-this-freebee.aspx</guid>
            <pubDate>Fri, 17 Jul 2009 20:40:37 GMT</pubDate>
            <wfw:comment>http://blog.crowe.co.nz/comments/923.aspx</wfw:comment>
            <comments>http://blog.crowe.co.nz/archive/2009/07/18/Looking-for-some-new-sounds-ndash-checkout-this-freebee.aspx#feedback</comments>
            <wfw:commentRss>http://blog.crowe.co.nz/comments/commentRss/923.aspx</wfw:commentRss>
        </item>
        <item>
            <title>An great TSQL index defrag script</title>
            <link>http://blog.crowe.co.nz/archive/2009/07/15/An-great-TSQL-index-defrag-script.aspx</link>
            <description>&lt;p&gt;I have been doing some more looking at SQL Server indexes lately and came across a great script that may be of use to others as well.&lt;/p&gt;  &lt;p&gt;So what can this index defrag script do? &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Schedule it to run with the default settings; it works “right out of the box” with no additional configuration necessary &lt;/li&gt;    &lt;li&gt;Run this one script from a centralized database for all databases on a server &lt;/li&gt;    &lt;li&gt;Run this script for a specific database or table &lt;/li&gt;    &lt;li&gt;Configure custom threshold limits and the point at which a rebuild should be performed (instead of a reorganize) &lt;/li&gt;    &lt;li&gt;Defrag individual partitions &lt;/li&gt;    &lt;li&gt;Log its actions and the duration of the defrag &lt;/li&gt;    &lt;li&gt;Run in “commands only” mode (@executeSQL = 0, @printCommands = 1) &lt;/li&gt;    &lt;li&gt;Customize performance parameters such as @maxDopRestriction and @defragDelay to minimize impact on the server &lt;/li&gt;    &lt;li&gt;Schedule specific indexes to only be defragged on weekends, or every other day&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The script source code (very well documented) and author (&lt;strong&gt;Michelle Ufford&lt;/strong&gt;) can be found at &lt;a title="http://sqlfool.com/2009/06/index-defrag-script-v30/" href="http://sqlfool.com/2009/06/index-defrag-script-v30/"&gt;http://sqlfool.com/2009/06/index-defrag-script-v30/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.crowe.co.nz/aggbug/922.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Crowe</dc:creator>
            <guid>http://blog.crowe.co.nz/archive/2009/07/15/An-great-TSQL-index-defrag-script.aspx</guid>
            <pubDate>Tue, 14 Jul 2009 19:39:16 GMT</pubDate>
            <wfw:comment>http://blog.crowe.co.nz/comments/922.aspx</wfw:comment>
            <comments>http://blog.crowe.co.nz/archive/2009/07/15/An-great-TSQL-index-defrag-script.aspx#feedback</comments>
            <wfw:commentRss>http://blog.crowe.co.nz/comments/commentRss/922.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Some simple T-SQL code to strip time from a date and return other dates</title>
            <link>http://blog.crowe.co.nz/archive/2009/07/14/Some-simple-T-SQL-code-to-strip-time-from-a-date.aspx</link>
            <description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;span style="color: #0000ff"&gt;declare&lt;/span&gt; @dt datetime&lt;br /&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; @dt = getdate()&lt;/font&gt;&lt;font size="2"&gt;&lt;br /&gt; &lt;/font&gt;&lt;/p&gt;&lt;span style="color: #0000ff"&gt;&lt;/span&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Now'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; @dt&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Today - no time'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(D, 0, datediff(D, 0, @dt))&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Today – 23:59:59.997'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(ms,-3, dateadd(D, datediff(D, 0, @dt),1))&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Start of this week - Starts on MONDAY'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(wk,datediff(wk,0, @dt),0) &lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'End of this week - Starts on MONDAY 23:59:59.997'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(ms,-3, dateadd(wk,datediff(wk,0,@dt),7))&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Start of this week - Starts on SUNDAY'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(wk,datediff(wk,0,getdate()),-1) &lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'End of this week - Starts on SUNDAY 23:59:59.997'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(ms,-3,dateadd(wk,datediff(wk,0,@dt),5)) &lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Start of Month'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(mm,datediff(mm,0,@dt),0) &lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Last day of current Month - 23:59:59.997'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(ms,-3, dateadd(mm,datediff(mm,0,@dt)+1,0))&lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #006080"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/font&gt; &lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Here is a simple break down to how these snippets actually work&lt;/p&gt;

&lt;p&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;'Today - no time'&lt;/span&gt;

  &lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(D, 0, datediff(D, 0, @dt))

  &lt;br /&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;First off we return the &lt;strong&gt;&lt;em&gt;number of days&lt;/em&gt;&lt;/strong&gt; between the date/time passed and &lt;strong&gt;0&lt;/strong&gt; so we get the number of whole days (we have lost the time)&lt;/p&gt;

&lt;p&gt;Today is July 14, 2009 (as an example) which using this code&lt;/p&gt;

&lt;p&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; datediff(D, 0, '2009-07-14 03:34:21')&lt;/p&gt;

&lt;p&gt;This will return &lt;strong&gt;40006 &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We then add &lt;strong&gt;40006 &lt;/strong&gt;days to &lt;strong&gt;0&lt;/strong&gt; and this returns the date &lt;strong&gt;2009-07-14&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(D, 0, 40006)&lt;/p&gt;

&lt;p&gt;Jul 14 2009 12:00AM&lt;/p&gt;

&lt;p&gt;So adding it together we get&lt;/p&gt;

&lt;p&gt;&lt;span style="color: #0000ff"&gt;print&lt;/span&gt; dateadd(D, 0, datediff(D, 0, @dt))&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;You will notice that some of the functions have a &lt;strong&gt;–3&lt;/strong&gt; as part of the code, this is because we want to return the last actual time that SQL Server can reference on a particular day. SQL Server can store the maximum time as &lt;strong&gt;23:59:59.997&lt;/strong&gt;. That is because SQL Server is only accurate to 3 milliseconds. If we used 23:59:59.999 it would actually roll over to the next day.&lt;/p&gt;

&lt;p&gt;So if we were wanting to return the last time for today’s date/time we can use the following&lt;/p&gt;

&lt;p&gt;print DATEADD(ms, - 3, DATEADD(D, DATEDIFF(D, 0, GETDATE()), 1)) 
  &lt;/p&gt;&lt;img src="http://blog.crowe.co.nz/aggbug/921.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Crowe</dc:creator>
            <guid>http://blog.crowe.co.nz/archive/2009/07/14/Some-simple-T-SQL-code-to-strip-time-from-a-date.aspx</guid>
            <pubDate>Mon, 13 Jul 2009 22:55:04 GMT</pubDate>
            <wfw:comment>http://blog.crowe.co.nz/comments/921.aspx</wfw:comment>
            <comments>http://blog.crowe.co.nz/archive/2009/07/14/Some-simple-T-SQL-code-to-strip-time-from-a-date.aspx#feedback</comments>
            <wfw:commentRss>http://blog.crowe.co.nz/comments/commentRss/921.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>