[英]Has date type changed in SQL Server 2008?
我对“为什么1899-12-30为什么将Access / SQL Server中的零日期而不是12/31设为零日期”感到困惑。
SQL Server 2008之前的版本中是否有日期类型? 我找不到。
在SQL Server 2008中,零日期是0001-01-01。 在以前的SQL Server版本中,是否有任何日期类型向后兼容?
否。在SQL Server 2008之前,只有datetime和smalldatetime类型。
数据类型...范围................................ ..................................准确性
日期时间........................ 1753年1月1日至9999年12月31日... 3.33毫秒
smalldatetime .......... 1900年1月1日至2079年6月6日...... 1分钟
请参阅: SQL Server 2008中的日期和时间数据 ,特别是标有“ SQL Server 2008中引入的日期/时间数据类型 ”的位
在SQL Server datetime数据类型中,可以存储的最小日期为1753年1月1日 。
但是,日期时间存储为相对于基准日期1900-01-01 00:00:00.000
数字偏移量
SELECT CAST(-0.25 AS DATETIME) /*1899-12-31 18:00:00.000*/
SELECT CAST(0 AS DATETIME) /*1900-01-01 00:00:00.000*/
SELECT CAST(0.25 AS DATETIME) /*1900-01-01 06:00:00.000*/
1899-12-30
在SQL Server中没有意义。
SELECT CAST(CAST('1899-12-30' AS DATETIME) AS FLOAT) /*Returns -2*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.