0
votes

Format PostgreSQL Timestamp dans H: mm am / pm

Voulez-vous obtenir horodatage / texte au format "H: mm A" (à partir du moment JS)

Par exemple Sélectionnez TO_CHAR (CURCENT_TIMESTAMP, 'HH12: MI AM')

Ceci donnera 08:13 am Ce résultat, mais j'ai besoin 8:13 am


0 commentaires

3 Réponses :


2
votes

Vous pouvez utiliser couper ici: xxx

Demo


2 commentaires

Bonne réponse, il n'ya donc aucun moyen de le faire avec TO_CHAR ou TO_TIMESTAMP?


@Grigor je pensais à ce que je pouvais dire d'autre dans ma réponse. Ce n'est pas vraiment le travail de to_char pour gérer cela. En fait, il suffit d'utiliser un seul H12 n'est même pas reconnu comme un masque de format pendant des heures.



3
votes

Vous pouvez utiliser Mode de remplissage ( FM code >) , dont la fonction est de supprimer des zéros et un bloc de rembourrage principal em>: xxx pré>

Démo sur DB Fiddle Strong>: P>

| to_char |
| :------ |
| 8:26 am |


2 commentaires

Cela supprimerait zéro des minutes, mais vous pouvez essayer deux modificateurs?


Cela supprime des zéros de premier plan des heures seulement, pas des minutes. Si vous souhaitez supprimer les principaux zéros de minutes, vous voulez 'FMHH12: FMMI am'



1
votes

Vous pouvez essayer des modificateurs de modèle de format "FM" \ "FX" pour supprimer les zéros et les zéros, à la fois en support Oracle et PSQL, mais je n'ai jamais essayé que dans psql xxx


4 commentaires

Pourquoi utiliser FXMI au lieu de MI?


FX est "correspondance exacte", tandis que FM "ignorer les zéros et les zéros". Je conseille d'expérimenter. Un modificateur s'applique jusqu'à ce que l'on utilise un autre afin de garantir que : 08 ne sera pas : 8


J'ai lu sur FX / FM dans la documentation des postgres, mais dois-je ajouter FX dans ce cas ou seulement être garantissant?


On dirait qu'il est impessaire là-bas Sélectionnez TO_CHAR (TO_TIMESTAMM ('20: 03 ',' HH24: MI '),' FMHH12: MI AM '); Identique que Sélectionnez TO_CHAR (' 20:03 ',' HH24: MI '),' FMHH12: FXMI AM '); FX est principalement utilisé pour l'entrée