例如,我有一个下面的表(tbl_trans),如下所示
transaction_id transaction_dte
integer timestamp without time zone
---------------+----------------------------------
45 | 2014-07-17 00:00:00
56 | 2014-07-17 00:00:00
78 | 2014-04-17 00:00:00
那么如何才能在7个月内从tbl_trans找到tottal no.of交易?
所以预期的输出是
tot_tran month
--------+-------
2 | July
答案 0 :(得分:3)
select count(transaction_id) tot_tran
,to_char(max(transaction_dte),'Month') month from tbl_trans
where extract (month from transaction_dte)=7
PostgreSQL提取功能解释here
答案 1 :(得分:0)
select count(transaction_id),date_part('month',transaction_dte)
from tbli_trans where date_part('month',transaction_dte)=7
答案 2 :(得分:-1)
EXTRACT(MONTH FROM TIMESTAMP transaction_dte)
OR
date_part('month', timestamp transaction_dte)
如果时间戳以字符串格式保存,则只需添加单词timestamp
正确地查看了2之间的差异:
提取功能主要用于计算 处理。用于格式化显示的日期/时间值。
date_part函数以传统的Ingres等效函数为模型 到SQL标准函数extract。
答案 3 :(得分:-2)
使用Datepart功能。
where datepart(transaction_dte, mm) = 7