相关疑难解决方法(0)

将 varchar 数据转换为日期时间失败

我们正在将数据从旧表(所有 varchar 字段)移动到强类型的对应提示中

作为这项工作的一部分,如果所有数据都可以正确转换为适当的类型,我们将从基础实体表中获取数据并将其转储到 Entity_New 中。否则,它将进入名为 Entity_Bad 的现有表的副本。

我们有一个规则引擎,可以在理论上验证数据和类型,因此即使数据存储在字符字段中,数据也应该是干净的。现实是我在这里发帖是因为有些事情已经过去了,我找不到了。Entity 中的 CompletionDate 字段是 varchar(46) NULL

环境是

productversion  productlevel   edition
10.0.4064.0     SP2            Enterprise Edition (64-bit)
Run Code Online (Sandbox Code Playgroud)

我的脚本展示了我在做什么以及什么在起作用但没有起作用

SET NOCOUNT ON

DECLARE
    @startid int = 0
,   @stopid int = 796833


-------------------------------------------------------------------------------
-- Check doesn't find anything wrong with CompletionDate
-------------------------------------------------------------------------------
SELECT
    1
FROM
    [dbo].[Entity] E
    INNER JOIN
        dbo.EntityBatch_New PB
        ON E.FiscalYear = PB.FiscalYear
            AND E.HashCode = PB.HashCode
            AND E.AAKey = PB.AAKey
            AND PB.ProcessResultCode IN ('A','W','M')
WHERE
    PB.EntityBatchId BETWEEN @StartId AND @StopId
    AND …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server t-sql datetime

3
推荐指数
1
解决办法
2322
查看次数

标签 统计

datetime ×1

sql-server ×1

sql-server-2008 ×1

t-sql ×1