sql - SQL Server 的日期时间转换问题

标签 sql database sql-server-2008 powerdesigner

我为使用 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.

您知道如何修复它吗?

最佳答案

datetime只能追溯到1753年,改用datetime2,datetime2是sql server 2008引入的

例子

select CONVERT(DATETIME2,'0345-12-9 3:23:52') 

关于sql - SQL Server 的日期时间转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17065971/

相关文章:

mysql - 如何在 SQL NOT IN 的 where 子句中添加另一个条件?

sql - 有没有办法缩短这个查询?

.net - SQL Server Varbinary(最大): select a subset of bytes from the varbinary field

sql - 将转换后的 varchar 插入 datetime sql

sql-server - 枢轴获取EAV数据

sql - Access 查询中的错误处理 #Error

sql - Postgresql 正则表达式搜索单词不区分大小写并忽略变音符号

mysql - 为什么我不能从表中删除这个外键?

php - 如何将多行值显示为单行

mysql - SQL按日期将多个值求和为按日期的新值