2015-06-15 38 views
0

我在Oracle SQL Developer中工作拉日期在适当的格式,并具有下列代码如何从时间戳

SELECT Trunc(assigned_date, 'IW') AS bonus_week 
FROM (SELECT Trunc(blf.assigned_date) AS assigned_date 
     FROM olap.bonus_lifecycle_fact blf) 

我以这种形式

07-12-03 

08-01-28 

08-01-28 

08-01-28 

08-01-07 

得到输出,是DD-MM --YY

这很好,除了我导出到Excel时,我得到了一些不可思议的事情发生。

eg: 08-01-28 becomes 08-01-2028. 

我认为这是因为blf.assigned_date是一个时间戳,但我不确定要纠正它。任何和所有帮助表示赞赏。谢谢!

+0

大概Excel中是“有益的”,尝试导出为CSV格式。 – OTTA

+0

Excel是问题,而不是Oracle。将Excel列格式化为自定义日期格式以符合您的标准 – kevinsky

+0

我不认为它的优点 - 如果在excel中输入28作为年份,将其转换为2028类似于oracle的RR格式。年份需要用4位数来正确解释为1928年(假设这是什么问题)。 OP可以确认 – 6ton

回答

0

尝试使用to_char函数格式化日期以使用完整的4位数年份,然后执行导出为ex​​cel。

SELECT TO_CHAR(Trunc(assigned_date, 'IW'), 'MM-DD-YYYY') AS bonus_week 

注意:我假设你有28个问题得到转换为2028,而不是1928年以上的解决方案应该解决这个问题。

此外,您还可以更改Excel列的格式,显示今年2个位数(28,而不是1928年或2028)

+1

(如果你正在做日期的to_char,在这种情况下你不需要额外的trunc。) – Boneist

+0

SELECT TO_CHAR(Trunc(assigned_date,'IW'),'MM-DD-YYYY')AS bonus_week 这工作!非常感谢! –