Boa tarde, pessoal. Estou tendo dificuldade em interpretar esse erro:
ERROR: function month(date) does not exist
LINE 7: WHERE MONTH(Compra.data) BETWEEN 1 AND 1 AND YEAR(Compra.dat...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
SQL state: 42883
Character: 376
O código que estou tentando executar é o seguinte:
SELECT Compra.id_compra, Compra.data, Compra.quantidade, Compra.valor, Pessoa.nome, Livro.nome, Livro.ISBN, Livro.ano_lancamento, Livro.preco, Livro.categoria, Livro.autor, Editora.nome
FROM Compra
INNER JOIN Pessoa ON Compra.id_pessoa = Pessoa.id_pessoa
INNER JOIN Livro ON Compra.id_livro = Livro.id_livro
INNER JOIN Editora ON Livro.id_editora = Editora.id_editora
WHERE MONTH(Compra.data) BETWEEN 1 AND 1 AND YEAR(Compra.data) = 2022
Esse comando deveria selecionar as informações das compras (id_compra, data, quantidade, valor), dos clientes (nome) e dos livros (nome, ISBN, ano_lancamento, preco, categoria, autor) comprados, bem como da editora (nome) que os publicou, realizadas no mês de janeiro de 2022.
Campos da tabela no select:
CREATE TABLE Pessoa (
id_pessoa INTEGER PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
telefone VARCHAR(15)
);
CREATE TABLE Editora (
id_editora INTEGER PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
telefone1 VARCHAR(15) NOT NULL,
telefone2 VARCHAR(15)
);
CREATE TABLE Livro (
id_livro INTEGER PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
ISBN VARCHAR(13) NOT NULL,
ano_lancamento INTEGER NOT NULL,
preco DECIMAL(10,2) NOT NULL,
categoria VARCHAR(255) NOT NULL,
autor VARCHAR(255) NOT NULL,
id_editora INTEGER,
FOREIGN KEY (id_editora) REFERENCES Editora(id_editora)
);
CREATE TABLE Compra (
id_compra INTEGER PRIMARY KEY,
data DATE NOT NULL,
quantidade INTEGER NOT NULL,
valor DECIMAL(10,2) NOT NULL,
id_pessoa INTEGER,
id_livro INTEGER,
FOREIGN KEY (id_pessoa) REFERENCES Pessoa(id_pessoa),
FOREIGN KEY (id_livro) REFERENCES Livro(id_livro)
);