I believe (I've never used it, and found it through the iptables man page) --timestart and --timestop will accomplish this.
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -m tcp -p tcp --source 1.2.3.4 --dport 3306 --timestart 13:00 --timestop 14:00 -j ACCEPT
Would allow you between 1 and 2pm.
This matches if the packet arrival time/date is within a given range.
All options are facultative.
--timestart value
Match only if it is after 'value' (Inclusive,
format: HH:MM ; default 00:00).
--timestop value
Match only if it is before 'value' (Inclusive,
format: HH:MM ; default 23:59).