1

我为使用 PowerAMC 创建的数据库生成了一些假数据。该数据库作为一些以时间日期格式归档。但是当我在 SQL Server(Express 版)中运行文件时,我有以下内容:

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

相关线路:

insert into INVENTORY (INVENTORY_ID, STATUS, START_DATE, COMPLETION_DATE) values (7, 'MAHSTDIV9', '1005-5-19 9:48:44', '1235-2-16 9:42:10')

所以我认为日期格式不是预期的格式(可能是dd-mm-yyyy而不是我所拥有的),但我不知道我能做些什么来防止这种情况发生。

到目前为止我所做
的:尝试转换日期

select CONVERT(DATETIME,'345-12-9 3:23:52',120) 
    -> Conversion failed when converting date and/or time from character string.
select CAST(CONVERT(VARCHAR(100),'345-12-9 3:23:52',120) AS datetime) 
    -> The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

您对如何修复它有任何想法吗?

4

3 回答 3

3

日期时间只能追溯到 1753。请改用 datetime2,在 sql server 2008 中引入了 datetime2

例子

select CONVERT(DATETIME2,'0345-12-9 3:23:52') 
于 2013-06-12T12:52:58.833 回答
1

在事务中 SQLdatetime的范围从 1 月 1753 年开始。1.

你应该使用datetime2

于 2013-06-12T12:53:06.873 回答
1

Datetimedataype 可以保存 1753-01-01 到 9999-12-31 范围内的日期。要容纳 1753 年之前的值,请使用datedatetime2数据类型。

于 2013-06-12T12:53:09.363 回答