<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Gallery of Stack Traces: Date/Time Fun</title>
	<atom:link href="http://qahatesyou.com/wordpress/2007/08/gallery-of-stack-traces-datetime-fun/feed/" rel="self" type="application/rss+xml" />
	<link>http://qahatesyou.com/wordpress/2007/08/gallery-of-stack-traces-datetime-fun/</link>
	<description>You suspected it.  Now you know it.</description>
	<lastBuildDate>Tue, 15 May 2012 21:22:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: DarkStar</title>
		<link>http://qahatesyou.com/wordpress/2007/08/gallery-of-stack-traces-datetime-fun/comment-page-1/#comment-30</link>
		<dc:creator>DarkStar</dc:creator>
		<pubDate>Wed, 15 Aug 2007 16:11:50 +0000</pubDate>
		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2007/08/14/gallery-of-stack-traces-datetime-fun/#comment-30</guid>
		<description>Indeed - Your article prompted an interesting discussion over here about a [not so little] &quot;History and Future of the World&quot; database...  In the end, it was decided that the platform handling of dates was irrelevant, so long as the platform as a whole could scale acceptably.  Dates would have to be &quot;hand rolled&quot; regardless of the platform....

Which is why you need a company whose business analysts take time to learn your needs to provide you with the best solutions possible at a reasonable rate.</description>
		<content:encoded><![CDATA[<p>Indeed &#8211; Your article prompted an interesting discussion over here about a [not so little] &#8220;History and Future of the World&#8221; database&#8230;  In the end, it was decided that the platform handling of dates was irrelevant, so long as the platform as a whole could scale acceptably.  Dates would have to be &#8220;hand rolled&#8221; regardless of the platform&#8230;.</p>
<p>Which is why you need a company whose business analysts take time to learn your needs to provide you with the best solutions possible at a reasonable rate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Director</title>
		<link>http://qahatesyou.com/wordpress/2007/08/gallery-of-stack-traces-datetime-fun/comment-page-1/#comment-29</link>
		<dc:creator>Director</dc:creator>
		<pubDate>Wed, 15 Aug 2007 14:53:34 +0000</pubDate>
		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2007/08/14/gallery-of-stack-traces-datetime-fun/#comment-29</guid>
		<description>You&#039;re the one who&#039;s calling a meeting to discuss platform options when QA says that a stack trace has occurred.</description>
		<content:encoded><![CDATA[<p>You&#8217;re the one who&#8217;s calling a meeting to discuss platform options when QA says that a stack trace has occurred.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DarkStar</title>
		<link>http://qahatesyou.com/wordpress/2007/08/gallery-of-stack-traces-datetime-fun/comment-page-1/#comment-28</link>
		<dc:creator>DarkStar</dc:creator>
		<pubDate>Wed, 15 Aug 2007 04:59:17 +0000</pubDate>
		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2007/08/14/gallery-of-stack-traces-datetime-fun/#comment-28</guid>
		<description>No, I was in Minnesota, not Massachusetts.
...and the wedding is another story.

To be an equal-opportunity platform lover, I will mention that while an Oracle Date field can store dates as small as 4712 B.C., it can only handle dates going forward to 4712 A.D. It also supports Gregorian and Julian date functions, but can cost quite a bit more.

IBMs DB2 Date type lasts from 1 A.D. to 9999A.D., does not handle Julian dates like Oracle, but does follow the ANSI/ISO SQL Standard date requirements pretty closely, and is also rather pricey.

SQL Server 2005 DateTime runs from 1753 A.D. to 9999 A.D. and is more reasonably priced.   It also supports the .Net 2.0 CLR which means you can define your own date data types in your preferred .Net language.

MySQL can quantum leap you anywhere from 1000 A.D. to 9999 A.D. and some call it &quot;free.&quot;

Given that every other database has a data type supporting dates to 9999 A.D., perhaps the Oracle system is best suited for pre-history data or, &quot;old stuff.&quot;   Maybe QA should suggest a migration to Oracle to help alleviate the problem...?  It may cost more, and take months to complete, but by golly...  writing validation for dates that passed in pre-history would be a little bit easier!

An addition to my previous note - different countries switched from the Julian calendar to the Gregorian calendar at different times.  So when you are working with pre-history data, you&#039;ll need to know what country your user is in as well...

Isn&#039;t it easier to just say...
&quot;DataType error - Please enhance validation.&quot;  ?</description>
		<content:encoded><![CDATA[<p>No, I was in Minnesota, not Massachusetts.<br />
&#8230;and the wedding is another story.</p>
<p>To be an equal-opportunity platform lover, I will mention that while an Oracle Date field can store dates as small as 4712 B.C., it can only handle dates going forward to 4712 A.D. It also supports Gregorian and Julian date functions, but can cost quite a bit more.</p>
<p>IBMs DB2 Date type lasts from 1 A.D. to 9999A.D., does not handle Julian dates like Oracle, but does follow the ANSI/ISO SQL Standard date requirements pretty closely, and is also rather pricey.</p>
<p>SQL Server 2005 DateTime runs from 1753 A.D. to 9999 A.D. and is more reasonably priced.   It also supports the .Net 2.0 CLR which means you can define your own date data types in your preferred .Net language.</p>
<p>MySQL can quantum leap you anywhere from 1000 A.D. to 9999 A.D. and some call it &#8220;free.&#8221;</p>
<p>Given that every other database has a data type supporting dates to 9999 A.D., perhaps the Oracle system is best suited for pre-history data or, &#8220;old stuff.&#8221;   Maybe QA should suggest a migration to Oracle to help alleviate the problem&#8230;?  It may cost more, and take months to complete, but by golly&#8230;  writing validation for dates that passed in pre-history would be a little bit easier!</p>
<p>An addition to my previous note &#8211; different countries switched from the Julian calendar to the Gregorian calendar at different times.  So when you are working with pre-history data, you&#8217;ll need to know what country your user is in as well&#8230;</p>
<p>Isn&#8217;t it easier to just say&#8230;<br />
&#8220;DataType error &#8211; Please enhance validation.&#8221;  ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Director</title>
		<link>http://qahatesyou.com/wordpress/2007/08/gallery-of-stack-traces-datetime-fun/comment-page-1/#comment-27</link>
		<dc:creator>Director</dc:creator>
		<pubDate>Wed, 15 Aug 2007 00:24:02 +0000</pubDate>
		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2007/08/14/gallery-of-stack-traces-datetime-fun/#comment-27</guid>
		<description>Jack Straw is correct that it&#039;s a flaw with a datatype that can be rectified with proper use of a better data type, better logic, and such would prevent it.

The stack trace is not necessarily the fault of the platform that Jack Straw loves and adores so much (rumor has it he spent a long weekend in Massachussetts actually trying to marry Windows); rather, it&#039;s a flaw of the lazy and/or ignorant developers who work with it.

Also, Jack Straw, you forgot to mention &quot;You need a company whose business analysts take time to learn your needs to provide you with the best solutions possible at a reasonable rate.&quot;</description>
		<content:encoded><![CDATA[<p>Jack Straw is correct that it&#8217;s a flaw with a datatype that can be rectified with proper use of a better data type, better logic, and such would prevent it.</p>
<p>The stack trace is not necessarily the fault of the platform that Jack Straw loves and adores so much (rumor has it he spent a long weekend in Massachussetts actually trying to marry Windows); rather, it&#8217;s a flaw of the lazy and/or ignorant developers who work with it.</p>
<p>Also, Jack Straw, you forgot to mention &#8220;You need a company whose business analysts take time to learn your needs to provide you with the best solutions possible at a reasonable rate.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DarkStar</title>
		<link>http://qahatesyou.com/wordpress/2007/08/gallery-of-stack-traces-datetime-fun/comment-page-1/#comment-26</link>
		<dc:creator>DarkStar</dc:creator>
		<pubDate>Tue, 14 Aug 2007 20:59:11 +0000</pubDate>
		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2007/08/14/gallery-of-stack-traces-datetime-fun/#comment-26</guid>
		<description>Here we go again:

&gt;

QA is great at finding problems.
But when it comes to explaining the reason behind the errors... notsomuch.

There are a number of reasons why the datetime datatype has a limited range in SQL Server, but those reasons are irrelevant.  Our QA professional has suggested that you cannot store dates prior to 1753 in SQL Server, which is absurdly false.

True, the datetime datatype may not support it, but if we had built-in features to handle every conceivable data variation, then we wouldn&#039;t need so many developers.

.NET can handle dates from 1.1.0001 forward... and with some reasoned thinking, so can SQL Server.

Consider Format.Native and Format.UserDefined.  Format.Native only works with blittable datatypes, and you will have to implement the IBinarySerialize interface along with Format.UserDefined.  You can polish off the task by writing a few user-defined functions that work the same as the native SQL Server date functions, but with your custom type instead.

A word of caution:  Dates are not simple...  if you want to go waaay back in history, you need to accurately account for leap years and also changes to the calendar itself.  Before the Gregorian Calendar that we are familiar with today, the Julian Calendar reigned until 1582.  Of course, Julian years were longer...  The Gregorian calendar also has 3 additional leap-days every 400 years...

Its not that it *can&#039;t* be done... its just not so simple and straightforward as one might like.  The real QA issue, is that the developer chose to work within the predefined data types and did not validate input data.  Thus... QA could accurately respond with:

Error: DateTime Overflow
Cause: Input Dates not validated

No need to start bashing corporations or products at this point... The chosen database platform hasn&#039;t really impeded your ability to work with dates - instead, it has made it vastly more simple to work with the most common dates.  The Duke of Normandy has indeed not been banned from modern computerized history tools.</description>
		<content:encoded><![CDATA[<p>Here we go again:</p>
<p>&gt;</p>
<p>QA is great at finding problems.<br />
But when it comes to explaining the reason behind the errors&#8230; notsomuch.</p>
<p>There are a number of reasons why the datetime datatype has a limited range in SQL Server, but those reasons are irrelevant.  Our QA professional has suggested that you cannot store dates prior to 1753 in SQL Server, which is absurdly false.</p>
<p>True, the datetime datatype may not support it, but if we had built-in features to handle every conceivable data variation, then we wouldn&#8217;t need so many developers.</p>
<p>.NET can handle dates from 1.1.0001 forward&#8230; and with some reasoned thinking, so can SQL Server.</p>
<p>Consider Format.Native and Format.UserDefined.  Format.Native only works with blittable datatypes, and you will have to implement the IBinarySerialize interface along with Format.UserDefined.  You can polish off the task by writing a few user-defined functions that work the same as the native SQL Server date functions, but with your custom type instead.</p>
<p>A word of caution:  Dates are not simple&#8230;  if you want to go waaay back in history, you need to accurately account for leap years and also changes to the calendar itself.  Before the Gregorian Calendar that we are familiar with today, the Julian Calendar reigned until 1582.  Of course, Julian years were longer&#8230;  The Gregorian calendar also has 3 additional leap-days every 400 years&#8230;</p>
<p>Its not that it *can&#8217;t* be done&#8230; its just not so simple and straightforward as one might like.  The real QA issue, is that the developer chose to work within the predefined data types and did not validate input data.  Thus&#8230; QA could accurately respond with:</p>
<p>Error: DateTime Overflow<br />
Cause: Input Dates not validated</p>
<p>No need to start bashing corporations or products at this point&#8230; The chosen database platform hasn&#8217;t really impeded your ability to work with dates &#8211; instead, it has made it vastly more simple to work with the most common dates.  The Duke of Normandy has indeed not been banned from modern computerized history tools.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

