sql - 如何将 oracle 时间戳转换为 postgres?

标签 sql oracle postgresql

如何将 oracle 时间戳转换为 postgres 时间戳,我们在 oracle 数据库中有一个值如下,

15-JUN-2014 01.00.00.0000 PM

我在 postgres/Greenplum 中存储为 varchar。我怎样才能转换为 postgres 中的时间戳,

需要输出如下,

15-06-2014 13.00.00.0000

作为 24 小时格式。

最佳答案

时间戳就是时间戳。它们使用内部表示来表示日期(包括时间)。但是您可以使用各种 formats 将时间戳与字符串相互转换.例如,如果您需要显示它们或为了将您的数据导出到需要某些特定表示的其他软件。

在以下 Oracle 代码中,我使用与您的第一个示例对应的格式将字符串转换为时间戳 ( TO_TIMESTAMP)。然后我使用与您的第二个表示相对应的其他格式将该时间戳“转换回”字符串( TO_CHAR ):

-- Convert a string to a timestamp
WITH sample_data AS 
  (SELECT TO_TIMESTAMP('15-JUN-2014 01.00.00.0000 PM', 
                       'DD-MON-YYYY HH12.MI.SS.FF4 PM') ts FROM DUAL)

-- Convert a timestamp to a string using a format corresponding
-- to "15-06-2014 13.00.00.0000"
SELECT TO_CHAR(ts, 'DD-MM-YYYY HH24.MI.SS.FF4') as result FROM sample_data;

生成(字符串):

result
15-06-2014 13.00.00.0000

请注意,您也可以使用(几乎?)完全相同的 date functions and formats 在 PostgreSQL 中将字符串转换为日期。 .

关于sql - 如何将 oracle 时间戳转换为 postgres?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26105374/

相关文章:

php - MySQL 用 PHP 递增 int

sql - 让用户只与数据库中的一个表进行交互?

Oracle:我的表什么时候被修改?

php - 如何在不让它死掉的情况下捕获数据库错误?

sql - PostgreSQL:更新主键,避免冲突

sql - 将 XML 文件导入到 Azure SQL 数据库

sql - EF4 和 SQL Server 2000

oracle - 添加 FK 约束时权限不足 (Oracle)

sql - 使用其他表的条件更新表的最有效方法?

macos - Postgres 失败并显示 'could not open relation mapping file "global/pg_filenode.map"'