Hi,
I come from a code background, but am making a concerted effort to not think programatically with my SQL and instead trying to be lazy.
I need to send email notifications based on certain days of the week and in-between a range of times. Here is the data on that:
[TABLE=“class: grid, width: 80%, align: center”]
[TR]
[TD]id[/TD]
[TD]schedule[/TD]
[TD]start_time[/TD]
[TD]end_time[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD][TABLE]
[TR]
[TD]Daily - Morning[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD][TABLE]
[TR]
[TD]Daily - Afternoon[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD][TABLE]
[TR]
[TD]Daily - Evening[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD][TABLE]
[TR]
[TD]Monday - Morning[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]5[/TD]
[TD][TABLE]
[TR]
[TD]Monday - Afternoon[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]6[/TD]
[TD][TABLE]
[TR]
[TD]Monday – Evening[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]7[/TD]
[TD][TABLE]
[TR]
[TD]Wednesday - Morning[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]8[/TD]
[TD][TABLE]
[TR]
[TD]Wednesday -Afternoon[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]9[/TD]
[TD][TABLE]
[TR]
[TD]Wednesday - Evening[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]10[/TD]
[TD][TABLE]
[TR]
[TD]Friday - Morning[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]11[/TD]
[TD][TABLE]
[TR]
[TD]Friday - Afternoon[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]12[/TD]
[TD][TABLE]
[TR]
[TD]Friday - Evening[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[TD][TABLE]
[TR]
[TD]00:00:00[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
I know how to do this programatically, however I am getting confused as the best way to do this using only SQL
Some questions:[LIST=1]
[]How best can I determine the day of the week?
[]CURRENT DATE only tells that it is today but not if it matches Monday, Wednesday, or Friday. Is there a way to determine if it is a Monday, Wednesday, or Friday?
[*]Time might be a little more straight forward as the intervals are the same for each day - I could use only a base time rather than start and end times and then use an Interval maybe or is the range the right way to do this?
[/LIST]Is this better not to do in SQL?
I don’t know if I have been clear enough to elicit your help, but if so it is appreciated.
Regards,
Steve