sql-server - 无法在 sql server 中将 varchar 转换为日期

标签 sql-server tsql sql-server-2008 date

在我的数据中,varchar(5) 格式的名为“duedate”的列的日期以以下格式“20110725”存储在 2011 年 7 月 25 日,有什么方法可以将其转换为日期格式

我试过使用

cast(duedate as datetime) 

哪个不起作用
然后我尝试将其转换为 bigint,然后转换为 datetime
cast( cast(duedate as bigint) as datetime) 

其中说

arithematic overflow error



很抱歉混淆它是 varchar(50) - 拼写错误,非常感谢帮助我尝试你们提到的事情

最佳答案

如果该列确实是 varchar( 5 ),则它不能具有像“20110725”这样的值,因为那将是 8 人物。

也许这些值在插入时被截断了?
'20110725' 缩短为 5 个字符就变成了 '20117',这样转换是行不通的。

我想问题是这样的,因为作为 Mladen Prajdic already said , 将 '20110725' 转换为 datetime 效果很好。

关于sql-server - 无法在 sql server 中将 varchar 转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6815619/

相关文章:

c# - 从多个表中选择最大日期

sql - 如何对 SQL 数据库进行实时更改

sql - 使用 SQL 将逗号分隔的字符串表行拆分为单独的行

sql-server - 如何比较两个sql查询值

.net - 什么是datetime2?

c# - 在 Asp.Net 中使用电子邮件发送忘记密码

SQL JOIN 与 IN 性能比较?

sql - T-SQL : Use t-sql while routine return value in SELECT

sql-server - 使用 TSQL 的按位操作,如旋转、选择性位反转

sql - 有没有办法在 Visual Studio 中将 SQL 脚本导入 MDF 数据库?