﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><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/"><channel><title>BlogJava-qqjianyue代码工-随笔分类-SQL</title><link>http://www.blogjava.net/jianyue/category/34158.html</link><description>砌java代码</description><language>zh-cn</language><lastBuildDate>Mon, 19 Dec 2011 08:12:15 GMT</lastBuildDate><pubDate>Mon, 19 Dec 2011 08:12:15 GMT</pubDate><ttl>60</ttl><item><title>SQL Server的时间变量</title><link>http://www.blogjava.net/jianyue/archive/2008/08/28/225234.html</link><dc:creator>Qzi</dc:creator><author>Qzi</author><pubDate>Thu, 28 Aug 2008 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/jianyue/archive/2008/08/28/225234.html</guid><wfw:comment>http://www.blogjava.net/jianyue/comments/225234.html</wfw:comment><comments>http://www.blogjava.net/jianyue/archive/2008/08/28/225234.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jianyue/comments/commentRss/225234.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jianyue/services/trackbacks/225234.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt">&#8220;从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界&#8221;<br />
&nbsp;错误的注意罗，下面是SQL Server下两种变量的详细介绍，时间值越界的明显就会报这个错误<br />
&nbsp;<br />
<span style="font-size: 14pt">datetime</span><span style="font-size: 14pt; font-family: 宋体">和</span></span><span style="font-size: 10pt"><span style="font-size: 14pt">smalldatetime<br />
<br />
</span><span style="font-size: 14pt; font-family: 宋体">代表日期和一天内的时间的日期和时间数据类型。</span></span><span style="font-size: 14pt"><span style="font-size: 10pt">&nbsp; <br />
&nbsp; datetime</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 14pt; font-family: 宋体">从</span><span style="font-size: 14pt">1753</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">到</span><span style="font-size: 14pt">9999</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">12</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">31</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">的日期和时间数据，精确度为百分之三秒。如下表所示，把值调整到</span><span style="font-size: 14pt">.000</span><span style="font-size: 14pt; font-family: 宋体">、</span><span style="font-size: 14pt">.003</span><span style="font-size: 14pt; font-family: 宋体">、或</span><span style="font-size: 14pt">.007</span><span style="font-size: 14pt; font-family: 宋体">秒的增量。（曾经试过使用1752有错，1753就没有错了，郁闷啊！）</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 14pt">microsoft&amp;reg;sqlserver&#8482;</span><span style="font-size: 14pt; font-family: 宋体">拒绝所有其不能识别为</span><span style="font-size: 14pt">1753</span><span style="font-size: 14pt; font-family: 宋体">年到</span><span style="font-size: 14pt">9999</span><span style="font-size: 14pt; font-family: 宋体">年间的日期的值。</span></span><span style="font-size: 14pt"><br />
<span style="font-size: 10pt">&nbsp; smalldatetime<br />
</span></span><span style="font-size: 10pt"><span style="font-size: 14pt; font-family: 宋体">从</span><span style="font-size: 14pt">1900</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">到</span><span style="font-size: 14pt">2079</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">6</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">6</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">的日期和时间数据精确到分钟。</span><span style="font-size: 14pt">29.998</span><span style="font-size: 14pt; font-family: 宋体">秒或更低的</span><span style="font-size: 14pt">smalldatetime</span><span style="font-size: 14pt; font-family: 宋体">值向下舍入为最接近的分钟，</span><span style="font-size: 14pt">29.999</span><span style="font-size: 14pt; font-family: 宋体">秒或更高的</span><span style="font-size: 14pt">smalldatetime</span><span style="font-size: 14pt; font-family: 宋体">值向上舍入为最接近的分钟。</span></span><span style="font-size: 14pt"><br />
<span style="font-size: 10pt">&nbsp; --returnstimeas12:35<br />
&nbsp; selectcast(2000-05-0812:35:29.998assmalldatetime)<br />
&nbsp; go<br />
&nbsp; --returnstimeas12:36<br />
&nbsp; selectcast(2000-05-0812:35:29.999assmalldatetime)<br />
&nbsp; go<br />
&nbsp; </span></span><span style="font-size: 14pt; font-family: 宋体"><span style="font-size: 10pt">注释</span></span><span style="font-size: 14pt"><br />
<span style="font-size: 10pt">microsoftsqlserver</span></span><span style="font-size: 10pt"><span style="font-size: 14pt; font-family: 宋体">用两个</span><span style="font-size: 14pt">4</span><span style="font-size: 14pt; font-family: 宋体">字节的整数内部存储</span><span style="font-size: 14pt">datetime</span><span style="font-size: 14pt; font-family: 宋体">数据类型的值。第一个</span><span style="font-size: 14pt">4</span><span style="font-size: 14pt; font-family: 宋体">字节存储</span><span style="font-size: 14pt">basedate</span><span style="font-size: 14pt; font-family: 宋体">之前或之后的天数。基础日期是系统参考日期。不允许早于</span><span style="font-size: 14pt">1753</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">的</span><span style="font-size: 14pt">datetime</span><span style="font-size: 14pt; font-family: 宋体">值。另外一个</span><span style="font-size: 14pt">4</span><span style="font-size: 14pt; font-family: 宋体">字节存储以午夜后毫秒数所代表的每天的时间。</span></span><span style="font-size: 14pt"><br />
<span style="font-size: 10pt">smalldatetime</span></span><span style="font-size: 10pt"><span style="font-size: 14pt; font-family: 宋体">数据类型存储日期和每天的时间，但精确度低于</span><span style="font-size: 14pt">datetime</span><span style="font-size: 14pt; font-family: 宋体">。</span><span style="font-size: 14pt">sqlserver</span><span style="font-size: 14pt; font-family: 宋体">将</span><span style="font-size: 14pt">smalldatetime</span><span style="font-size: 14pt; font-family: 宋体">的值存储为两个</span><span style="font-size: 14pt">2</span><span style="font-size: 14pt; font-family: 宋体">字节的整数。第一个</span><span style="font-size: 14pt">2</span><span style="font-size: 14pt; font-family: 宋体">字节存储</span><span style="font-size: 14pt">1900</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">后的天数。另外一个</span><span style="font-size: 14pt">2</span><span style="font-size: 14pt; font-family: 宋体">字节存储午夜后的分钟数。日期范围从</span><span style="font-size: 14pt">1900</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">1</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">到</span><span style="font-size: 14pt">2079</span><span style="font-size: 14pt; font-family: 宋体">年</span><span style="font-size: 14pt">6</span><span style="font-size: 14pt; font-family: 宋体">月</span><span style="font-size: 14pt">6</span><span style="font-size: 14pt; font-family: 宋体">日</span><span style="font-size: 14pt; font-family: 宋体">，精确到分钟。</span></span></p>
<img src ="http://www.blogjava.net/jianyue/aggbug/225234.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jianyue/" target="_blank">Qzi</a> 2008-08-28 11:34 <a href="http://www.blogjava.net/jianyue/archive/2008/08/28/225234.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>