将 varchar 转换为 datetime 时转换失败

金克罗斯

这似乎是 SQL Server 本身的错误。我有一个非常简单的功能,它的工作基本上是模拟try_convert(datetime, string arg),因为我的客户不允许将数据库设置为 SQL Server 2012 兼容性。

我提取出函数的开头和测试查询,如下:

create function spTryConvertDateTime (@pString varchar(255))
returns datetime
as
begin
   declare @iresult datetime = null;
   declare @string varchar(255) = ltrim(rtrim(isnull(@pString, '')));
   declare @datestring varchar(255);
   declare @timestring varchar(255);

   if len(@string) < 10
      return @iresult;

   set @datestring = left(@string, 10);

   if len(@string) >= 19
      set @timestring = substring(@string, 11, len(@string-10));

   return null;
end;
go

declare @v varchar(32) = '2017-10-31 00:00:00';
select dbo.spTryConvertDateTime(@v);

当我尝试运行它时,出现以下错误:


将 varchar 值“2017-10-31 00:00:00”转换为数据类型 int 时,消息 245,级别 16,状态 1,第 3 行转换失败。

???我在哪里尝试将 ANYTHING 转换为数据类型int

到底是怎么回事?我错过了什么?

戈登·利诺夫

您在函数深处有此代码:

len(@string-10)

(这是return NULL.之前最后一行的结尾。)

不能从字符串中减去 10。因此尝试将其转换为整数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将varchar转换为datetime

来自分类Dev

将varchar转换为datetime时出错

来自分类Dev

将varchar中的datetime转换为datetime

来自分类Dev

将varchar转换为datetime并添加秒

来自分类Dev

将datetime转换为varchar从MSSQL转换为MYSQL

来自分类Dev

将VARCHAR转换为DATETIME时为NULL

来自分类Dev

将date(varchar)和time(varchar)转换为datetime Oracle

来自分类Dev

将varchar转换为int时转换失败

来自分类Dev

将 varchar 转换为 INT 时转换失败

来自分类Dev

将Varchar列转换为Datetime格式-SQL Server

来自分类Dev

仅使用日期部分将datetime转换为varchar

来自分类Dev

从代码运行存储过程时,将 varchar 转换为 datetime 时出错

来自分类Dev

尝试按日期筛选表时,“将varchar值转换为int时转换失败”

来自分类Dev

SQL Server存储过程-将数据类型varchar转换为datetime时出错

来自分类Dev

将varchar转换为bigint时出错

来自分类Dev

将varchar转换为int

来自分类Dev

将文本转换为Varchar

来自分类Dev

将varchar转换为int

来自分类Dev

将日期转换为varchar

来自分类Dev

将varchar值转换为SQL Server 2008中的数据类型int时,转换失败

来自分类Dev

Case Statement,将varchar值转换为int数据类型时转换失败

来自分类Dev

UNION导致“将varchar值转换为int时转换失败”

来自分类Dev

将Varchar值“ NOTDEFINED”转换为数据类型Int时转换失败

来自分类Dev

将varchar值'19500.00'转换为数据类型int时转换失败

来自分类Dev

将varchar值'none'转换为数据类型int时转换失败

来自分类Dev

将varchar值'6276.54'转换为数据类型int时转换失败

来自分类Dev

将varchar值'U'转换为数据类型int时转换失败

来自分类Dev

错误“将varchar值'ABC'转换为数据类型int时转换失败。”

来自分类Dev

将varchar值转换为数值数据类型时,SQL转换失败

Related 相关文章

  1. 1

    将varchar转换为datetime

  2. 2

    将varchar转换为datetime时出错

  3. 3

    将varchar中的datetime转换为datetime

  4. 4

    将varchar转换为datetime并添加秒

  5. 5

    将datetime转换为varchar从MSSQL转换为MYSQL

  6. 6

    将VARCHAR转换为DATETIME时为NULL

  7. 7

    将date(varchar)和time(varchar)转换为datetime Oracle

  8. 8

    将varchar转换为int时转换失败

  9. 9

    将 varchar 转换为 INT 时转换失败

  10. 10

    将Varchar列转换为Datetime格式-SQL Server

  11. 11

    仅使用日期部分将datetime转换为varchar

  12. 12

    从代码运行存储过程时,将 varchar 转换为 datetime 时出错

  13. 13

    尝试按日期筛选表时,“将varchar值转换为int时转换失败”

  14. 14

    SQL Server存储过程-将数据类型varchar转换为datetime时出错

  15. 15

    将varchar转换为bigint时出错

  16. 16

    将varchar转换为int

  17. 17

    将文本转换为Varchar

  18. 18

    将varchar转换为int

  19. 19

    将日期转换为varchar

  20. 20

    将varchar值转换为SQL Server 2008中的数据类型int时,转换失败

  21. 21

    Case Statement,将varchar值转换为int数据类型时转换失败

  22. 22

    UNION导致“将varchar值转换为int时转换失败”

  23. 23

    将Varchar值“ NOTDEFINED”转换为数据类型Int时转换失败

  24. 24

    将varchar值'19500.00'转换为数据类型int时转换失败

  25. 25

    将varchar值'none'转换为数据类型int时转换失败

  26. 26

    将varchar值'6276.54'转换为数据类型int时转换失败

  27. 27

    将varchar值'U'转换为数据类型int时转换失败

  28. 28

    错误“将varchar值'ABC'转换为数据类型int时转换失败。”

  29. 29

    将varchar值转换为数值数据类型时,SQL转换失败

热门标签

归档