मैं sql का चयन करना चाहता हूं:
SELECT "year-month" from table group by "year-month" AND order by dateजहां वर्ष-माह - दिनांक "1978-01", "1923-12" के लिए प्रारूप।
couse काम का चयन करें , लेकिन "सही" आदेश नहीं:
to_char(timestamp_column, 'YYYY-MM')
मैं sql का चयन करना चाहता हूं:
SELECT "year-month" from table group by "year-month" AND order by dateजहां वर्ष-माह - दिनांक "1978-01", "1923-12" के लिए प्रारूप।
couse काम का चयन करें , लेकिन "सही" आदेश नहीं:
to_char(timestamp_column, 'YYYY-MM')
जवाबों:
date_part(text, timestamp)
जैसे
date_part('month', timestamp '2001-02-16 20:38:40'),
date_part('year', timestamp '2001-02-16 20:38:40')
http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html
to_char(timestamp, 'YYYY-MM')
आप कहते हैं कि आदेश "सही" नहीं है, लेकिन मैं यह नहीं देख सकता कि यह गलत क्यों है (कम से कम वर्ष 10000 के आसपास आता है)।
ORDER BYतिथि नहीं कर सकते ।
ORDER BY to_char(timestamp, 'YYYY-MM')। या वैकल्पिक रूप से यदि आपने किया है तो आप SELECT to_char(timestamp, 'YYYY-MM') AS dateबस उपयोग कर सकते हैं ORDER BY date।
date_truncदिन (या जो कुछ भी, जैसे, सप्ताह, वर्ष, दिन, आदि) को बंद करने के लिए विधि का उपयोग करें ।)
महीने के अनुसार बिक्री से समूहीकरण का उदाहरण:
select
SUM(amount) as sales,
date_trunc('month', created_at) as date
from orders
group by date
order by date DESC;
उपयोग करने वाले महीने के बाद आप सभी सूचनाओं को काट सकते हैं date_trunc(text, timestamp):
select date_trunc('month',created_at)::date as date
from orders
order by date DESC;
created_at = '2019-12-16 18:28:13'
आउटपुट 1:
date_trunc('day',created_at)
// 2019-12-16 00:00:00
आउटपुट 2:
date_trunc('day',created_at)::date
// 2019-12-16
आउटपुट 3:
date_trunc('month',created_at)::date
// 2019-12-01
आउटपुट 4:
date_trunc('year',created_at)::date
// 2019-01-01
पहला विकल्प
date_trunc('month', timestamp_column)::date
यह एक दिन से शुरू होने वाले सभी महीनों के साथ तारीख प्रारूप को बनाए रखेगा।
उदाहरण:
2016-08-01
2016-09-01
2016-10-01
2016-11-01
2016-12-01
2017-01-01
दूसरा विकल्प
to_char(timestamp_column, 'YYYY-MM')
@Yairchu द्वारा प्रस्तावित इस समाधान ने मेरे मामले में ठीक काम किया। मैं वास्तव में 'दिन' की जानकारी को त्यागना चाहता था।
आप EXTRACT फ़ंक्शन pgSQL का उपयोग कर सकते हैं
EX- date = 1981-05-31
EXTRACT(MONTH FROM date)
it will Give 05
अधिक जानकारी के लिए PGSQL तिथि-समय
यह "से अधिक" कार्यों के लिए काम कर रहा है जो इससे कम के लिए नहीं है।
उदाहरण के लिए:
select date_part('year',txndt)
from "table_name"
where date_part('year',txndt) > '2000' limit 10;
ठीक काम कर रहा है।
लेकिन के लिए
select date_part('year',txndt)
from "table_name"
where date_part('year',txndt) < '2000' limit 10;
मुझे त्रुटि हो रही है।