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