如何将oracle to_timestamp转换为sql?

时间:2017-04-18 09:42:10

标签: sql sql-server oracle

我想转换Oracle

to_timestamp(coloum_name,'DD-MM-YYYY')到sql

必需的输出:24-APR-17 12.00.00.000000000 PM

3 个答案:

答案 0 :(得分:1)

我知道这是旧的,但它有一个非常可搜索的标题,并且没有接受的答案。

TO_TIMESTAMP函数将日期的文本表示转换为标准日期/时间格式。从您的问题来看,听起来您将日期存储为格式为“DD-MM-YYYY'”的字符,但您希望SQL Server DATETIME2(7)(基于秒中的小数位数)为你的输出。您似乎也希望默认时间是中午,而不是午夜,因为您的示例输出显示的是12:00 PM,而不是AM。

使用带有样式103的CONVERT会将欧洲风格的日期更改为DATETIME2(7),如下所示。但是,你需要做一个DATEADD从午夜(这将是默认值)移动到中午,这是十二个小时之后。

DECLARE @DateSample NVARCHAR(10) = '17-04-2017';

SELECT CONVERT( DATETIME2(7), @DateSample, 103 );

--Results
--2017-04-17 00:00:00.0000000

SELECT DATEADD( HOUR, 12, CONVERT( DATETIME2(7), @DateSample, 103 ));

--Results
--2017-04-17 12:00:00.0000000

SQL Server默认为24小时制,所以如果您绝对必须切换到AM / PM指示符,则必须将其转换回字符串,这似乎与您的字符串相反。重新尝试。

答案 1 :(得分:0)

这是一种使用您想要的格式将Oracle中的date / timestamp转换为varchar2的方法

select to_char(yourColumn, 'DD-MON-YY HH.MI.SS.FF9 PM')
from yourTable

答案 2 :(得分:-1)

SELECT FORMAT(SYSDATETIME(),' dd-MMM-yyyy h.mm.ss.fffffff tt')