3

在 SQL Server 2000 数据库中,我有一个表,其中包含 Oracle 数据库日期的字符串表示形式。它们的格式类似于“16-MAY-12”。我需要将这些转换为日期时间。我似乎找不到匹配的转换样式编号,也找不到允许我指定输入格式的函数。有任何想法吗?

4

2 回答 2

2

这似乎对我有用:

SELECT CONVERT(DATETIME, '16-MAY-12');

您还可以尝试使用TO_CHAR()将 Oracle 值转换为对 SQL Server 更友好的格式(最好是YYYYMMDD),然后再将它们拉出阴暗面。

于 2012-05-16T18:49:59.020 回答
0

遵循 Aaron 的建议并在 Oracle 端转换为字符串,然后在 MS SQL 端进行检查/重铸。请参见下面的示例:


    ;WITH SOURCE AS (
    SELECT * FROM openquery(lnk, 
    'SELECT
        TO_CHAR(OFFDATE , ''YYYY-MM-DD HH24:MI:SS'') AS OFFDATE,
    FROM
        ORACLE_SOURCE')),
    SOURCE_TRANSFORM AS
    (
    SELECT
        CASE 
        WHEN ISDATE(OFFDATE) = 1 THEN CAST(OFFDATE AS DATETIME)
        ELSE NULL END AS OFFDATE
    FROM
        SOURCE
    )
    SELECT * FROM SOURCE_TRANSFORM
于 2014-10-29T16:20:34.000 回答