我想转换Oracle
to_timestamp(coloum_name,'DD-MM-YYYY')
到sql
必需的输出:24-APR-17 12.00.00.000000000 PM
答案 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')