2017-04-25 126 views
0

是否有任何方法来存储类型范围之外的日期时间类型?我的意思是,如果我尝试做像INSERT INTO [tbl](..., [IndependenceDate],....) VALUES(...,'1650-01-01',...)这样的水手,我会得到一个错误(导致日期时间类型范围是:1753年1月1日至9999年12月31日)。我正在使用SQL Server Management Studio。日期时间类型SQL

+0

如果日期没有意义,为什么不使用这个作为varchar? – Balinti

+0

MSSQL(Microsoft Sql Server)日期时间类型的确有一个开始日期1753-01-01。请参阅此处:https://docs.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql – Milney

回答

0

如果您不关心时间并拥有更新版本的SQL,则可以使用Date。或者,你可以使用DateTime2(但这将使用更多的空间)...

+1

DateTime2不占用更多空间。 DateTime使用8个字节,DateTime2可以使用6到8个字节,具体取决于它的准确性。 –

+0

为了完成,datetime2数据类型包括: 0001年1月1日00:00:00至9999年12月31日23:59:59.9999999。默认值仍然是1900年1月1日。它也比日期时间显着更准确。 https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime2-transact-sql – Shawn