如何从时间戳中以正确的格式提取日期
How to pull the date in proper format from timestamp
我在 Oracle SQL 开发人员工作并拥有以下代码
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 是一个时间戳,但我不确定是否纠正它。任何帮助表示赞赏。谢谢!
尝试使用 to_char 函数格式化您的日期以使用完整的 4 位数年份,然后导出到 excel。
SELECT TO_CHAR(Trunc(assigned_date, 'IW'), 'MM-DD-YYYY') AS bonus_week
注意:我假设您遇到了将 28 转换为 2028 而不是 1928 的问题。上面的解决方案应该可以解决这个问题。
此外,您还可以更改 excel 列的格式,以 2 位数字显示年份(28 而不是 1928 或 2028)
我在 Oracle SQL 开发人员工作并拥有以下代码
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 是一个时间戳,但我不确定是否纠正它。任何帮助表示赞赏。谢谢!
尝试使用 to_char 函数格式化您的日期以使用完整的 4 位数年份,然后导出到 excel。
SELECT TO_CHAR(Trunc(assigned_date, 'IW'), 'MM-DD-YYYY') AS bonus_week
注意:我假设您遇到了将 28 转换为 2028 而不是 1928 的问题。上面的解决方案应该可以解决这个问题。
此外,您还可以更改 excel 列的格式,以 2 位数字显示年份(28 而不是 1928 或 2028)