如何在postgres中将12小时时间戳格式转换为24小时时间戳格式?

时间:2016-11-07 07:41:31

标签: postgresql postgresql-9.3

如何在postgres中将12小时时间戳格式转换为24小时时间戳格式?喜欢' 2016-07-01 01:12:22 PM'到' 2016-07-01 13:12:22'

3 个答案:

答案 0 :(得分:1)

timestamp(或datetimeinteger或任何类型的非字符类型)中的值不会以任何特定格式存储。

所见的任何格式由您正在使用的应用程序应用显示值 - 通常是您正在使用的SQL客户端。

有两种方法可以改变它:

  1. 将您的SQL客户端配置为使用不同的时间戳格式进行显示(如何执行此操作取决于您使用的SQL客户端 - 请查看其手册)
  2. 使用the_char()函数通过SQL格式化时间戳值

    select to_char(the_column, 'yyyy-mm-dd hh24:mi:ss')
    from the_table
    
  3. 有关可用格式的更多详细信息,请参阅手册:https://www.postgresql.org/docs/current/static/functions-formatting.html#FUNCTIONS-FORMATTING-DATETIME-TABLE

答案 1 :(得分:1)

使用PostgreSQL:

要将24小时转换为12小时:

select to_char( to_timestamp ( '13:00:00', 'HH24:MI:SS' ) , 'HH12:MI:SS PM' )
    from emp_table;

要将12小时转换为24小时:

select to_char( to_timestamp ( '11:00:00' , 'HH12:MI:SS' ) , 'HH24:MI:SS AM' )
    from emp_table;

答案 2 :(得分:0)

很容易,只需按照以下方式进行投射:

SELECT '2016-07-01 01:12:22 PM'::timestamp;
      timestamp
---------------------
 2016-07-01 13:12:22
(1 row)