1

我有一张桌子:

CREATE TABLE TRANSACTION ( 
transaction_date date,
id_transaction int,
PRIMARY KEY (id_transaction)
);

我想将“transaction_date”字段的月份与月份数进行比较。

SELECT *
FROM TRANSACTION T 
WHERE month = transaction_date;

但我不知道如何进行这种转换。

4

2 回答 2

2

您可以使用EXTRACT(MONTH FROM transaction_date)

SELECT * 
FROM transaction
WHERE EXTRACT(MONTH FROM transaction_date) = 1;

sqlfiddle demo

根据文档

提取(来自源的字段)

extract 函数从日期/时间值中检索子字段,例如年或小时。source 必须是时间戳、时间或间隔类型的值表达式。

于 2013-11-05T02:49:23.503 回答
0
SELECT *
FROM TRANSACTION T 
WHERE EXTRACT(MONTH FROM TIMESTAMP transaction_date) = month;

month应该是介于 1(一月)和 12(十二月)之间的整数。

于 2013-11-05T02:48:15.177 回答