Saltar al contenido

Cómo configurar la base de datos Postgresql para ver la fecha como “MDY” de forma permanente

Hola usuario de nuestra web, tenemos la solución a tu pregunta, deslízate y la hallarás aquí.

Solución:

Solía ​​tener un problema muy similar hace años, y luego descubrí que puedo hacer

ALTER DATABASE database_name SET datestyle TO "ISO, MDY";

Trata eso. (Esto funciona por base de datos, para una solución para todas sus bases de datos, establezca este parámetro en usted postgresql.conf – gracias a @a_horse_with_no_name.)

Tenga en cuenta que la configuración predeterminada no es independiente de la configuración regional. Sin embargo, despus de initdb lo ajusta a lo que quiera, puede cambiarlo usted mismo en el postgresql.conf.

El comentario de @ swasheck me hizo notar que con mi configuración:

test=# SHOW lc_ctype;
      lc_ctype
--------------------
 Hungarian, Hungary
(1 row)


test=# SHOW lc_time;
      lc_time
--------------------
 Hungarian, Hungary
(1 row)

configuración datestyle tiene el siguiente efecto:

SET datestyle TO "ISO, MDY";

SELECT current_date;
    date
------------
 2012-06-21
(1 row)

Ahora bien, esto no es realmente esperado, y es lo mismo en otro servidor con en_US.UTF8, también. Difícil "ISO, DMY", también me sugiere que el "ISO" parte está más o menos anulando a la otra parte cuando se produce un producción. Para aporte valores, tiene el efecto esperado, como se resume en la siguiente tabla:

                          input values
           '2016/01/21'   '01/21/2016'   '21/01/2016'         output
──────────────────────────────────────────────────────────────────────
ISO, YMD        OK             --             --            2016-01-21
ISO, DMY        --             OK             --            2016-01-21
ISO, MDY        --             --             OK            2016-01-21

– significa arriba que el estilo de entrada dado da como resultado un error para el dado datestyle configuración.

Tras una lectura cuidadosa de la documentación, se puede ver que datestyle es un par de configuraciones parcialmente conflictivas:

Por razones históricas, esta variable contiene dos componentes independientes: la especificación del formato de salida (ISO, Postgres, SQL o alemán) y la especificación de entrada / salida para el pedido de año / mes / día (DMY, MDY o YMD).

Para mí, significa que uno tiene que encontrar el que se adapte a sus necesidades experimentando un poco, pero la mejor manera es dejarlo en el valor predeterminado y siempre usar un formato de entrada inequívoco. Dos de estos son 'YYYY-MM-DD' y 'YYYYMMDD'. Prefiero lo primero, incluso usando esta IRL;)

Nota la datestyle configuración (y otras configuraciones de tiempo de ejecución) desde postgresql.conf puede ser anulado por un ALTER DATABASE bla SET datestyle ..., configurándolo permanentemente para una sola base de datos, o por SET datestyle TO ... configurándolo para la sesión actual. Este último puede ser útil al importar datos de terceros con un formato de fecha diferente.

Gracias @a_horse_with_no_name | @dezso | @ ypercubeᵀᴹ

Quiero escribir la respuesta que es simple de implementar: Pasos

Camino 1 : configuración de estilo de fecha solo por base de datos

  1. show datestyle; mostrarle el estilo de fecha actual “ISO, DMY” o “ISO, MDY”

  2. Ahora dependiendo de lo que quieras en postgres DMY o MDY establecido en la siguiente consulta

    ALTER DATABASE "my_database_name" SET datestyle TO "ISO, DMY";

    o

    ALTER DATABASE "my_database_name" SET datestyle TO "ISO, MDY";

  3. Paso más importante: Siempre después de configurar datestyle reiniciar postgres

    sudo service postgresql restart

    O

    sudo /etc/init.d/postgresql restart

  4. Vamos a probar la configuración

    si has establecido DMY la consulta a continuación debería funcionar para usted

    Consulta:select '20/12/2016'::dateProducción:"2016-12-20"

    O

    si has establecido MDY la consulta a continuación debería funcionar para usted

    Consulta:select '12/19/2016'::dateProducción:"2016-12-19"

Camino 2 : Permanentemente : lo que sea que establezca en el archivo de configuración se establecerá en todas las bases de datos que creará en el futuro

  1. En /etc/postgresql/9.3/main/postgresql.conf conjunto

    datestyle = 'iso, dmy' O datestyle = 'iso, mdy'

  2. Paso más importante: Siempre después de configurar datestyle reiniciar postgres

    sudo service postgresql restart

    O

    sudo /etc/init.d/postgresql restart

  3. Vamos a probar la configuración

    si has establecido DMY la consulta a continuación debería funcionar para usted

    Consulta:select '20/12/2016'::dateProducción:"2016-12-20"

    O

    si has establecido MDY la consulta a continuación debería funcionar para usted

    Consulta:select '12/19/2016'::dateProducción:"2016-12-19"

Comentarios y valoraciones

Acuérdate de que te permitimos valorar esta sección si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *