PostgreSQL में एक टाइमस्टैंप से तारीख(yyyy/mm/dd) निकालें




(4)

मैं पोस्टग्रेएसक्यूएल में टाइमस्टैंप से केवल तारीख भाग निकालना चाहता हूं।

मुझे इसे postgresql DATE प्रकार होने की आवश्यकता है, इसलिए मैं इसे किसी अन्य तालिका में सम्मिलित कर सकता हूं जो DATE मान की अपेक्षा करता है।

उदाहरण के लिए, यदि मेरे पास 2011/05/26 09:00:00 , तो मुझे 2011/05/26

मैंने कास्टिंग करने की कोशिश की, लेकिन मुझे केवल 2011 मिल गया:

timestamp:date
cast(timestamp as date)

मैंने to_date() साथ to_char() की कोशिश की:

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

मैंने इसे एक समारोह बनाने की कोशिश की:

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

PostgreSQL में टाइमस्टैंप से तारीख (yyyy / mm / dd) निकालने का सबसे अच्छा तरीका क्या है?


आप अपने टाइमस्टैम्प को तारीख से ::date साथ एक तिथि तक कास्ट कर सकते हैं। यहां, psql में, एक टाइमस्टैम्प है:

# select '2010-01-01 12:00:00'::timestamp;
      timestamp      
---------------------
 2010-01-01 12:00:00

अब हम इसे एक तारीख में डाल देंगे:

wconrad=# select '2010-01-01 12:00:00'::timestamp::date;
    date    
------------
 2010-01-01

दूसरी तरफ आप date_trunc फ़ंक्शन का उपयोग कर सकते हैं। उनके बीच का अंतर यह है कि उत्तरार्द्ध उसी डेटा प्रकार को लौटाता है जैसे timestamptz आपके टाइम ज़ोन को बरकरार रखता है (यदि आपको इसकी आवश्यकता है)।

=> select date_trunc('day', now());
       date_trunc
------------------------
 2015-12-15 00:00:00+02
(1 row)

क्या आपने इसे <mydatetime>::date साथ, किसी तारीख को डालने का प्रयास किया है?


यह मेरे लिए अजगर 2.7 में काम करता है

 select some_date::DATE from some_table;

date समारोह का प्रयोग करें:

select date(timestamp_field) from table

किसी वर्ण फ़ील्ड प्रतिनिधित्व से उस तारीख तक जिसका आप उपयोग कर सकते हैं:

select date(substring('2011/05/26 09:00:00' from 1 for 10));

टेस्ट कोड:

create table test_table (timestamp_field timestamp);
insert into test_table (timestamp_field) values(current_timestamp);
select timestamp_field, date(timestamp_field) from test_table;

परीक्षा परिणाम:





postgresql