首页 > 数据库 > mysql教程 > 如何修复 SQL Server 中的'从字符串转换日期和/或时间时转换失败”错误?

如何修复 SQL Server 中的'从字符串转换日期和/或时间时转换失败”错误?

Mary-Kate Olsen
发布: 2025-01-19 19:21:44
原创
185 人浏览过

How to Fix

“从字符串转换日期和/或时间时转换失败”SQL 中的问题

尝试创建包含日期时间列的表并插入特定日期和时间时值时,遇到错误消息“从字符串转换日期和/或时间时转换失败”。以下是解决此问题的方法:

转换问题

最初尝试以“21-02-2012 6:10:00 PM”格式插入值会导致错误,因为 SQL Server需要特定的日期和时间格式。

ISO-8601 格式

要解决此问题问题,请使用 ISO-8601 日期格式,无论语言或日期格式设置如何,SQL Server 都支持该格式。格式由以下选项组成:

  • YYYYMMDD 表示不带时间部分的日期(无破折号)
  • YYYY-MM-DDTHH:mm:ss 表示带时间的日期(破折号可选) ,修复了“T”分隔符)

更正的插入语句

将 ISO-8601 格式应用于插入语句会生成更正的代码:

insert into table1 values('2012-02-21T18:10:00', '2012-01-01T00:00:00');
登录后复制

DATETIME2 数据类型

或者,对于 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板