web-dev-qa-db-fra.com

Convertir la date AAAA-MM-JJ (sans fuseau horaire) en horodatage Unix dans PostgreSQL

J'ai une colonne de type date avec le format de valeur suivant: YYYY-MM-DD (Par exemple. 2018-08-03). Je veux obtenir l'équivalent de l'horodatage Unix des dates, mais sans le fuseau horaire.

F.e. la date 2018-08-03 doit être égale à 1533254400 (à partir du calcul ici ).

J'ai essayé to_timestamp(my_date_column, 'YYYY-MM-DD') mais il renvoie l'erreur function to_timestamp(date, unknown) does not exist. J'ai essayé d'ajouter différentes variantes de ::timestamp... À la fin de l'appel de fonction, mais en vain.

Actuellement, je fais la conversion d'horodatage dans la couche application, mais j'aimerais dédier ce travail à la base de données.

3
Milkncookiez

D'accord ... après un changement d'approche, j'ai décidé d'essayer "d'extraire" les données au lieu de les convertir. Il s'est avéré qu'il y a la fonction oh-so pratique extract dans Postgres, qui fait exactement ce que je veux.

extract(Epoch from my_date_column) as date_timestamp

Ici est une explication plus détaillée.

5
Milkncookiez