387 Stimmen

Datum (yyyy/mm/dd) aus einem Zeitstempel in PostgreSQL extrahieren

Ich möchte nur den Datumsteil aus einem Zeitstempel in PostgreSQL extrahieren.

Ich brauche ein Postgresql DATE Typ, damit ich sie in eine andere Tabelle einfügen kann, die eine DATE Wert.

Zum Beispiel, wenn ich 2011/05/26 09:00:00 Ich möchte 2011/05/26

Ich habe versucht zu gießen, aber ich bekomme nur 2011:

timestamp:date
cast(timestamp as date)

Ich habe versucht to_char()to_date() :

SELECT to_date(to_char(timestamp, 'YYYY/MM/DD'), 'YYYY/MM/DD') 
FROM val3 WHERE id=1;

Ich habe versucht, es zu einer Funktion zu machen:

CREATE OR REPLACE FUNCTION testing() RETURNS void AS '
DECLARE i_date DATE;
BEGIN
    SELECT to_date(to_char(val1, "YYYY/MM/DD"),"YYYY/MM/DD") 
      INTO i_date FROM exampTable WHERE id=1;
    INSERT INTO foo(testd) VALUES (i);
END

Was ist der beste Weg, um Datum (yyyy/mm/dd) aus einem Zeitstempel in PostgreSQL zu extrahieren?

13voto

Koushik Das Punkte 7270

Einfach tun select date(timestamp_column) und Sie würden nur den Teil mit dem Datum erhalten. Manchmal tun select timestamp_column::date kann zurückkehren date 00:00:00 wo es nicht die 00:00:00 Teil. Aber ich habe gesehen date(timestamp_column) in allen Fällen perfekt zu funktionieren. Ich hoffe, das hilft.

5voto

Grzegorz Szpetkowski Punkte 35954
CREATE TABLE sometable (t TIMESTAMP, d DATE);
INSERT INTO sometable SELECT '2011/05/26 09:00:00';
UPDATE sometable SET d = t; -- OK
-- UPDATE sometable SET d = t::date; OK
-- UPDATE sometable SET d = CAST (t AS date); OK
-- UPDATE sometable SET d = date(t); OK
SELECT * FROM sometable ;
          t          |     d      
---------------------+------------
 2011-05-26 09:00:00 | 2011-05-26
(1 row)

Ein weiteres Testkit:

SELECT pg_catalog.date(t) FROM sometable;
    date    
------------
 2011-05-26
(1 row)

SHOW datestyle ;
 DateStyle 
-----------
 ISO, MDY
(1 row)

1voto

Ricardo Emerson Punkte 808

Sie können verwenden date_trunc('day', field) .

select date_trunc('day', data_gps) as date_description from some_table;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X