将oracle日期字符串转换为SQL Server日期时间

时间:2012-05-16 18:22:15

标签: sql-server datetime

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

2 个答案:

答案 0 :(得分:1)

这似乎对我有用:

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

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

答案 1 :(得分: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