尝试创建包含日期时间列的表并插入特定日期和时间时值时,遇到错误消息“从字符串转换日期和/或时间时转换失败”。以下是解决此问题的方法:
最初尝试以“21-02-2012 6:10:00 PM”格式插入值会导致错误,因为 SQL Server需要特定的日期和时间格式。
要解决此问题问题,请使用 ISO-8601 日期格式,无论语言或日期格式设置如何,SQL Server 都支持该格式。格式由以下选项组成:
将 ISO-8601 格式应用于插入语句会生成更正的代码:
insert into table1 values('2012-02-21T18:10:00', '2012-01-01T00:00:00');
或者,对于 SQL Server 2008 或更高版本,使用DATETIME2 数据类型简化了转换过程,并允许不同的日期格式,而无需问题:
SELECT CAST('02-21-2012 6:10:00 PM' AS DATETIME2), -- works just fine CAST('01-01-2012 12:00:00 AM' AS DATETIME2) -- works just fine
通过遵循 ISO-8601 格式或利用 DATETIME2 数据类型,您可以克服“转换失败”错误并在 SQL Server 中正确插入日期和时间值。
以上是如何修复 SQL Server 中的'从字符串转换日期和/或时间时转换失败”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!