Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Quantas horas os voluntários contribuíram para cada programa no primeiro semestre de 2023?
 ###Tabelas: 
CREATE TABLE VolunteerHours (VolunteerHoursID int, VolunteerID int, ProgramID int, Hours decimal, HourDate date); INSERT INTO VolunteerHours (VolunteerHoursID, VolunteerID, ProgramID, Hours, HourDate) VALUES (1, 1, 1, 5, '2023-01-01');
SELECT Programs.ProgramName, SUM(VolunteerHours.Hours) as TotalHours FROM VolunteerHours JOIN Programs ON VolunteerHours.ProgramID = Programs.ProgramID WHERE YEAR(HourDate) = 2023 AND MONTH(HourDate) <= 6 GROUP BY ProgramName;