あなたができることは、指定された日付からすべての時間を生成するストアドプロシージャを作成することです。例:
delimiter $$
CREATE PROCEDURE GetAllHoursInDay
(
in in_date date
)
BEGIN
SELECT convert (in_date, datetime)
UNION
SELECT in_date + interval 1 hour
UNION
SELECT in_date + interval 2 hour
UNION
SELECT in_date + interval 3 hour
UNION
SELECT in_date + interval 4 hour
UNION
SELECT in_date + interval 5 hour
UNION
SELECT in_date + interval 6 hour
UNION
SELECT in_date + interval 7 hour
UNION
SELECT in_date + interval 8 hour
UNION
SELECT in_date + interval 9 hour
UNION
SELECT in_date + interval 10 hour
UNION
SELECT in_date + interval 11 hour
UNION
SELECT in_date + interval 12 hour
UNION
SELECT in_date + interval 13 hour
UNION
SELECT in_date + interval 14 hour
UNION
SELECT in_date + interval 15 hour
UNION
SELECT in_date + interval 16 hour
UNION
SELECT in_date + interval 17 hour
UNION
SELECT in_date + interval 18 hour
UNION
SELECT in_date + interval 19 hour
UNION
SELECT in_date + interval 20 hour
UNION
SELECT in_date + interval 21 hour
UNION
SELECT in_date + interval 22 hour
UNION
SELECT in_date + interval 23 hour;
END$$
DELIMITER ;
:
call GetAllHoursInDay(current_date());
ない私の知る限り、MySQLは関数は、テーブルを返すことができないので、あなたがGetAllHoursInDay * FROM SELECTフォームの何かを持つことができないということ。ただし、一時的なテーブルを作成し、上記の手順で入力してSELECT *を実行することで回避できます。
これも同様に機能します。あなたを助けてくれてうれしいです。 –