Sql 将其他datetime列中的值插入datetime列

Sql 将其他datetime列中的值插入datetime列,sql,sql-server,datetime,type-conversion,Sql,Sql Server,Datetime,Type Conversion,我面临着一个问题,即应该向表中插入行的查询 该表具有以下属性: CREATE TABLE [dbo].[New_Table]( [ID] [nvarchar](32) NOT NULL, [Position] [smallint] NOT NULL, [...] [OrderDate] [datetime] NULL, [...] CONSTRAINT [PK_New_Table] PRIMARY KEY CLUSTERED ( [ID] AS

我面临着一个问题,即应该向表中插入行的查询

该表具有以下属性:

CREATE TABLE [dbo].[New_Table](
    [ID] [nvarchar](32) NOT NULL,
    [Position] [smallint] NOT NULL,
    [...]
    [OrderDate] [datetime] NULL,
    [...]
 CONSTRAINT [PK_New_Table] PRIMARY KEY CLUSTERED 
(
    [ID] ASC,
    [Position] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
OrderDate列是表中唯一的datetime列

从下表中检索OrderDate:

CREATE TABLE [dbo].[Old_Table](
    [ID] [nvarchar](32) NOT NULL,
    [Number] [nvarchar](15) NOT NULL,
    [...]
    [Date] [datetime] NULL,
    [...]
 CONSTRAINT [PK_Old_Table] PRIMARY KEY CLUSTERED 
(
    [ID_A_Kopf] ASC,
    [Number] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
这个查询很简单:

INSERT INTO [dbo].[New_Table]
SELECT DISTINCT
  DataTable.ID,
  DataTable.Position,
  DataTable.System,
  b.Date
FROM
  DataTable LEFT JOIN
  (   SELECT
        OldTable.ID,
        OldTable.Date
      FROM
        OldTable
      WHERE
        OldTable.Number = <Condition>) b ON DataTable.ID = b.ID
从字符串转换日期和/或时间时,转换为转换失败

我试着把它放在一个使用IsDate函数的情况下,但它也不起作用。允许空值,如新_表的表定义所示

所有这些都将在以下环境中运行:

Microsoft SQL Server Management Studio                      11.0.2100.60
Microsoft Data Access Components (MDAC)                     6.1.7601.17514
Microsoft MSXML                     2.6 3.0 4.0 6.0 
Microsoft Internet Explorer                     9.10.9200.17054
Microsoft .NET Framework                        4.0.30319.34209
Betriebssystem                      6.1.7601

我很确定您将日期/时间列放在了目标表的错误位置。

测试您的代码,选择不同的。。。在您插入之前:b列的格式。日期?我们没有听说要修复您的错误。尝试使用指定的列名插入。这实际上是问题的解决方案。
Microsoft SQL Server Management Studio                      11.0.2100.60
Microsoft Data Access Components (MDAC)                     6.1.7601.17514
Microsoft MSXML                     2.6 3.0 4.0 6.0 
Microsoft Internet Explorer                     9.10.9200.17054
Microsoft .NET Framework                        4.0.30319.34209
Betriebssystem                      6.1.7601