{"id":788,"date":"2007-06-24T06:03:00","date_gmt":"2007-06-24T06:03:00","guid":{"rendered":"\/blogs\/bobb\/post\/SQL-Server-system-data-types-implemented-in-NET.aspx"},"modified":"2007-06-24T06:03:00","modified_gmt":"2007-06-24T06:03:00","slug":"sql-server-system-data-types-implemented-in-net","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/","title":{"rendered":"SQL Server system data types implemented in .NET"},"content":{"rendered":"<p>\nSQL Server 2008 will contain, if my count is correct, 7 new data types. Note: none of these are in the&nbsp;current CTP.\n<\/p>\n<p>\nDATE &#8211; ANSI-compliant date data type<br \/>\nTIME &#8211; ANSI-compliant time data type with variable precision<br \/>\nDATETIMEOFFSET &#8211; timezone aware\/preserved datetime<br \/>\nDATETIME2 &#8211; like DATETIME, but with variable precision and large date range\n<\/p>\n<p>\nGEOMETRY &#8211; &quot;flat earth&quot; spatial data type<br \/>\nGEOGRAPHY &#8211; &quot;round earth&quot; spatial data type<br \/>\nHIERARCHYID &#8211; represents hierarchies using path enumeration model\n<\/p>\n<p>\nThe first four (date\/time series) are NOT implemented\/exposed as .NET system UDTs, but the last three are exposed as .NET system&nbsp;UDTs. This means that, for the first time, .NET will be used as part of SQL Server. In SQL Server 2005, there were originally DATE and TIME data types implemented in .NET, but implementing temporal data is an intricate process. After much wailing and gnashing of teeth by some members of the user community, these were removed.&nbsp; One of the complaints was the .NET implementation. Hmmm&#8230;\n<\/p>\n<p>\nOne of the nice side-effects of implementing spatial and hierarchyid as .NET types is that these will be shipped as a separate assembly, and that the types will be available for client-side and middle-tier use as well as in the database. So if you want to do some massive number crunching of spatial&nbsp;sequences on a computation server and the network traffic from database to computation server is acceptable, you can do so.\n<\/p>\n<p>\nIn general, SQLCLR makes the &quot;logic in database or middle-tier&quot; argument easier to deal with. Although there&#39;s no &quot;run on database or run on server&quot; switch in VS, with minimal code changes you can move your logic, or even duplicate the logic between tiers if need be. You can&#39;t do this with T-SQL; although its faster and better for data access on the database, it doesn&#39;t run outside the database. Unless you want to use SQL Server Express Edition as an application server. But that&#39;s a discussion for another time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQL Server 2008 will contain, if my count is correct, 7 new data types. Note: none of these are in the&nbsp;current CTP. DATE &#8211; ANSI-compliant date data type TIME &#8211; ANSI-compliant time data type with variable precision DATETIMEOFFSET &#8211; timezone aware\/preserved datetime DATETIME2 &#8211; like DATETIME, but with variable precision and large date range GEOMETRY [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,38,40],"tags":[],"class_list":["post-788","post","type-post","status-publish","format-standard","hentry","category-sql-server-2008","category-sqlclr","category-transact-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Server system data types implemented in .NET - Bob Beauchemin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server system data types implemented in .NET - Bob Beauchemin\" \/>\n<meta property=\"og:description\" content=\"SQL Server 2008 will contain, if my count is correct, 7 new data types. Note: none of these are in the&nbsp;current CTP. DATE &#8211; ANSI-compliant date data type TIME &#8211; ANSI-compliant time data type with variable precision DATETIMEOFFSET &#8211; timezone aware\/preserved datetime DATETIME2 &#8211; like DATETIME, but with variable precision and large date range GEOMETRY [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/\" \/>\n<meta property=\"og:site_name\" content=\"Bob Beauchemin\" \/>\n<meta property=\"article:published_time\" content=\"2007-06-24T06:03:00+00:00\" \/>\n<meta name=\"author\" content=\"Bob Beauchemin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bob Beauchemin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/\",\"name\":\"SQL Server system data types implemented in .NET - Bob Beauchemin\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\"},\"datePublished\":\"2007-06-24T06:03:00+00:00\",\"dateModified\":\"2007-06-24T06:03:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2008\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2008\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SQL Server system data types implemented in .NET\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\",\"name\":\"Bob Beauchemin\",\"description\":\"SQL Server Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\",\"name\":\"Bob Beauchemin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"caption\":\"Bob Beauchemin\"},\"sameAs\":[\"http:\/www.sqlskills.com\/blogs\/bobb\/\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Server system data types implemented in .NET - Bob Beauchemin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server system data types implemented in .NET - Bob Beauchemin","og_description":"SQL Server 2008 will contain, if my count is correct, 7 new data types. Note: none of these are in the&nbsp;current CTP. DATE &#8211; ANSI-compliant date data type TIME &#8211; ANSI-compliant time data type with variable precision DATETIMEOFFSET &#8211; timezone aware\/preserved datetime DATETIME2 &#8211; like DATETIME, but with variable precision and large date range GEOMETRY [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/","og_site_name":"Bob Beauchemin","article_published_time":"2007-06-24T06:03:00+00:00","author":"Bob Beauchemin","twitter_misc":{"Written by":"Bob Beauchemin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/","name":"SQL Server system data types implemented in .NET - Bob Beauchemin","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website"},"datePublished":"2007-06-24T06:03:00+00:00","dateModified":"2007-06-24T06:03:00+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/sql-server-system-data-types-implemented-in-net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2008","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2008\/"},{"@type":"ListItem","position":3,"name":"SQL Server system data types implemented in .NET"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/","name":"Bob Beauchemin","description":"SQL Server Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e","name":"Bob Beauchemin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","caption":"Bob Beauchemin"},"sameAs":["http:\/www.sqlskills.com\/blogs\/bobb\/"],"url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/comments?post=788"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/788\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/media?parent=788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/categories?post=788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/tags?post=788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}