Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server MS SQL日期时间早于1900年1月1日_Sql Server_Date - Fatal编程技术网

Sql server MS SQL日期时间早于1900年1月1日

Sql server MS SQL日期时间早于1900年1月1日,sql-server,date,Sql Server,Date,当然有办法将1-1-1900之前的日期值存储在varchar以外的列中吗?或者我真的必须打破这种局面,为日期差异、排序等执行我自己的datetime库吗 是的,我了解datetime的实际存储方式(特定日期的整数值),但我记得几年前有另一种解决方法。它现在正在打滑。smalldatetime vs.datetime ! 是,SQL Server日期时间类型可以存储1753年1月1日的日期。SQL Server 2008的日期数据类型的范围从0001-01-01到9999-12-31 在以前的

当然有办法将1-1-1900之前的日期值存储在varchar以外的列中吗?或者我真的必须打破这种局面,为日期差异、排序等执行我自己的datetime库吗


是的,我了解datetime的实际存储方式(特定日期的整数值),但我记得几年前有另一种解决方法。它现在正在打滑。

smalldatetime vs.datetime


!

是,SQL Server日期时间类型可以存储1753年1月1日的日期。

SQL Server 2008的日期数据类型的范围从0001-01-01到9999-12-31


在以前的版本中,如果您需要1753-01-01(DATETIME的最小值)之前的日期,您的SOL将提供给您。

谢谢,是的,我已经告诉开发人员进行更改,但他们仍然存在相同的问题。然后,当我看到msdn文章时,我要求他们刷新连接,然后再试一次,果然,“datetime”这次起作用了。(或者他们最初没有应用更改)。附带条件是,如果你想(例如)使用家谱应用程序记录1536年出生的人,你就要安装bug。要获得更大的范围,你可以在数据库中存储一个整数(适当范围),并使用类似“Unix时间”的东西用你的语言来解释它code@JoelFan-是的,您可以存储为整数或字符串-或者在SQL Server 2008中使用范围更大的datetime2。但“Unix时间”是一个坏例子,因为它只表示日期>=1970年1月1日。@Joe,不是真的!使用有符号整数可以表示Unix时间中的任何日期。。。负数在1/1之前/1970@JoelFan,我认为乔的意思是对历法等的解释。1582年引入了公历。在此之前,人们使用儒略历。那时候真是一团糟,我怀疑1753年的日期可能也代表了某种日历改革。。。仅仅加上或减去时间单位不一定能得到那么早以前的正确日期。