【问题标题】:Conversion issues where they shouldn't be? [closed]不应该出现的转换问题? [关闭]
【发布时间】:2013-04-20 17:37:42
【问题描述】:

所以我有这两个表,我正试图在http://msdn.microsoft.com/en-us/library/ms187928.aspx 之间复制数据,我在转换时应该没有问题,但似乎我做到了。以下是两个表,其中包含用于诊断此问题的相关信息:

Table1
col1(PK, int, not null)
col2(varchar(4608), null)
col3(datetime, null)
col4(datetime, null)
col5(char(12), null)
col6(datetime, null)
col7(int, null)
col8(datetime, null)
col9(char(1), not null)
col10(varchar(25), null)
col11(char(1), null)
col12(char(1), null)
col13(char(1), null)
col14(uniqueidentifier, null)
col15(FK, in, null)

Table2
col1(PK, int, not null)
col2(varchar(4608), null)
col3(datetime, null)
col4(datetime, null)
col5(char(12), null)
col6(datetime, null)
col7(int, null)
col8(varchar(80), null)
col9(varchar(120), null)
col10(datetime, null)
col11(char(1), not null)
col12(varchar(25), null)
col13(char(1), null)
col14(char(1), null)
col15(char(1), null)

现在这就是奇怪的业务发挥作用的地方。表 1 中的第 14 列和第 15 列对应表 2 中的第 8 列和第 9 列。除此之外,您可以清楚地看到哪些列根据它们的数据类型排列对吧?所以复制那些奇数列的代码在这里:(假设这是在底部...

SET IDENTITY_INSERT Table2 ON;
DELETE FROM Table2;
INSERT INTO Table2 (
col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15)
SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13
,CAST(col14 AS VARCHAR(80))
,CAST(col15 AS VARCHAR(120))
FROM Table1;
SET IDENTITY_INSERT Table2 OFF;

这是我得到的错误信息:

Conversion failed when converting date and/or time from character string.

这里发生了什么?

【问题讨论】:

  • 听起来您的列没有排好队。无法证明,因为您没有包含实际代码。 耸耸肩
  • 在那里,我对其进行了编辑以包含其余代码。我只是认为诚实并不重要,因为你可以假设它会是什么样子。不过还是谢谢。
  • 嗯,你看,你说table1中的col14和col15对应于table2中的第8列和第9列。然而,您的插入语句将第 8 列和第 9 列放入第 8 列和第 9 列,将第 14 列和第 15 列放入第 14 列和第 15 列。
  • 我以为我在某处读到 SQL 排列数据类型比列名更多?
  • 看在上帝的份上,请告诉我这些只是示例列名,而不是您的实际列。

标签: sql sql-server-2008 ssms


【解决方案1】:

在您的查询中,col10(按我的继续)在列列表和select 语句中的位置相同。

在table2中是varcharanddatetime`。

这可能是您的问题所在。

【讨论】:

  • 是的,你和亚伦是对的。我的 cmets 在那里解释了我的错误。谢谢。
猜你喜欢
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多