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

Postgresql 如何在postgres中将12小时时间戳格式转换为24小时时间戳格式?,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,如何在postgres中将12小时时间戳格式转换为24小时时间戳格式?像‘2016-07-01 01:12:22 PM’到‘2016-07-01 13:12:22’很容易,只要按如下方式播放即可: SELECT '2016-07-01 01:12:22 PM'::timestamp; timestamp --------------------- 2016-07-01 13:12:22 (1 row) 很容易,只需按如下方式进行投射: SELECT '2016-07-01 01:

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

很容易,只要按如下方式播放即可:

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

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

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

时间戳
(或
日期
时间
整数
或任何类型的非字符类型)中的值不以任何特定格式存储

您看到的任何格式都由用于显示值的应用程序应用—通常是您使用的SQL客户端

有两种方法可以改变这一点:

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

    select to_char(the_column, 'yyyy-mm-dd hh24:mi:ss')
    from the_table
    

  • 有关可用格式的更多详细信息,请参见手册:
    时间戳中的值(或
    日期
    时间
    整数
    或任何类型的非字符类型)不以任何特定格式存储

    您看到的任何格式都由用于显示值的应用程序应用—通常是您使用的SQL客户端

    有两种方法可以改变这一点:

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

    select to_char(the_column, 'yyyy-mm-dd hh24:mi:ss')
    from the_table
    
  • 有关可用格式的更多详细信息,请参阅手册:

    使用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;
    
    使用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;
    

    这是用于显示吗?列的数据类型是什么?是用于显示@Used_By_Alreadydatatype是timestamp without timezone@这是用于显示吗?列的数据类型是什么?是用于显示@Used_By_Alreadydatatype是timestamp without timezone@但实际上我在使用此激发格式'04-JAN-16 04.01.26.000000000 PM'时面临问题至“2016-01-04 16:01:26”格式@但实际上,我面临的问题是,当这个激发格式从'04-JAN-16 04.01.26.000000000 PM'到'2016-01-04 16:01:26'时@然后,使用本机Postgres函数的惰性方法可以是:
    SELECT replace(replace('04-JAN-16 04:01:26.000000000 PM','000000000',',',':')::timestamp。基本上,除了毫秒之外,您只需要将点替换为冒号。但是如果你的MS中只有满0,那么我就把它去掉了。希望有帮助:)但事实上,我面临的问题是,当这种激发格式从'04-JAN-16 04.01.26.000000000 PM'到'2016-01-04 16:01:26'时@但实际上,我面临的问题是,当这个激发格式从'04-JAN-16 04.01.26.000000000 PM'到'2016-01-04 16:01:26'时@然后,使用本机Postgres函数的惰性方法可以是:
    SELECT replace(replace('04-JAN-16 04:01:26.000000000 PM','000000000',',',':')::timestamp。基本上,除了毫秒之外,您只需要将点替换为冒号。但是如果你的MS中只有满0,那么我就把它去掉了。希望有帮助:)