2016-07-07 2 views
16
INSERT into Group (Name,CreatedDate) VALUES ('Test',UTC_TIMESTAMP(), 1); 

Questa è la query che ho utilizzato per mysql per inserire l'ora corrente. Quando sto usando questo in postgresql, sto ottenendo sotto l'errore.Come inserire la data/ora corrente nella query di inserimento postgresql

HINT: No function matches the given name and argument types. You might need to add explicit type casts. 
********** Error ********** 

ERROR: function utc_timestamp() does not exist 
SQL state: 42883 

Ho provato come qui di seguito utilizzando now(), tuttavia sta inserendo come "2016-07-07 17:01:18.410677". Devo inserire nel formato 'yyyymmdd hh:mi:ss tt'.

INSERT into Group (Name,CreatedDate) VALUES ('Test',UTC_TIMESTAMP(), 1); 

Come inserire data e ora correnti in query di inserimento di PostgreSQL in formato di cui sopra?

+0

Forse la ricerca di '' CURRENT_TIMESTAMP'or anche NOW() '. ci sono almeno argomenti di precisione per il primo. Quindi 'CURRENT_TIMESTAMP (3)' produrrà 3 cifre secondarie (risoluzione secondo milli) – Dilettant

+1

... Formattazione tramite SET DATESTYLE es. at: [in postgres, puoi impostare la formattazione predefinita per un timestamp, per sessione o globalmente?] (http://stackoverflow.com/questions/8723574/in-postgres-can-you-set-the-default-formatting -for-a-timestamp-by-session-or-g) o nei documenti ufficiali postgres – Dilettant

+3

'timestamp' colonne do *** not *** hanno" un formato ". Qualsiasi formattazione che vedi viene applicata dal client SQL che stai utilizzando. Cambia la configurazione del tuo client SQL o usa una funzione di formattazione corretta se vuoi un diverso formato _display_. –

risposta

0

È ovviamente possibile formattare il risultato di current_timestamp(). Si prega di dare un'occhiata alle varie funzioni di formattazione nel documentation ufficiale.

24

timestamp (o date o time colonne) fare NON hanno "formato".

Qualsiasi formattazione visualizzata viene applicata dal client SQL che si sta utilizzando.


Per inserire l'uso corrente tempo current_timestampas documented in the manual:

INSERT into "Group" (name,createddate) 
VALUES ('Test', current_timestamp); 

Per visualizzazione che apprezzi in un formato diverso modificare la configurazione del client SQL o formattare il valore quando si seleziona i dati:

select name, to_char(createddate, ''yyyymmdd hh:mi:ss tt') as created_date 
from "Group" 

Per psql (il client a riga di comando predefinito) è possibile configurare il formato di visualizzazione attraverso il parametro di configurazione DateStyle: https://www.postgresql.org/docs/current/static/runtime-config-client.html#GUC-DATESTYLE

+0

Se uso questo, sto ricevendo un errore muggito dato che la mia data è il formato data/ora. la colonna "createddate" è di tipo timestamp senza fuso orario ma expression è di tipo text – Shesha

+0

@Shesha Non usarlo nella query 'insert'. Nel tuo 'insert' usa' current_timestamp' –

Problemi correlati