您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_add_time_range

语法


sp_add_time_range <name>, <startday>, <endday>, <starttime>, <endtime>

name

是时间范围的名称。时间范围名称必须小于或等于 255 个字符。该名称不能已存在于 master 数据库的 systimeranges 系统表中。

startday

指定时间范围从星期几开始。它必须是缺省服务器语言的完整的星期日期名称,此数据存储在 master 数据库的 syslanguages 系统表中。

endday

指定时间范围到星期几结束。它必须是缺省服务器语言的完整的星期日期名称,此数据存储在 master 数据库的 syslanguages 系统表中。<endday> 在星期内可以在 <startday> 之前或之后,也可以与 <startday> 相同。

starttime

是时间范围开始的那一天中的时间。以 24 小时制指定 <starttime>,值介于“00:00”(午夜)到“23:59”(晚上 11:59)之间。使用如下格式:

"<HH>:<MM>"

endtime>

是时间范围结束的那一天中的时间。以 24 小时制指定<endtime>,值介于“00:00”(午夜)到“23:59”(晚上 11:59)之间。使用如下格式:

"<HH>:<MM>"

注意

若要创建跨全天的时间范围,请将开始时间和结束时间都指定为“00:00”。

<endtime> 在一天中的发生时间必须晚于 <starttime>,除非 <endtime> 是“00:00”。

示例

示例 1

创建 business_hours 时间范围,该时间范围从星期一到星期五,每天上午 9:00 到下午 5:00 处于活动状态:


sp_add_time_range business_hours, monday, Friday, "09:00", "17:00"

示例 2

创建两个时间范围 before_hoursafter_hours,这两个时间范围一起跨越从星期一到星期五的所有非工作时间。before_hours 时间范围涵盖星期一到星期五从午夜 12:00 到上午 9:00 这段时间。after_hours 时间范围涵盖星期一到星期五从下午 6:00 到午夜 12:00 这段时间:


sp_add_time_range before_hours, Monday, Friday, "00:00", "09:00"

sp_add_time_range after_hours, Monday, Friday, "18:00", "00:00"

示例 3

创建 weekends 时间范围,该时间范围从星期六午夜 12:00 到星期天午夜 12:00:


sp_add_time_range weekends, Saturday, Sunday, "00:00", "00:00"

示例 4

创建 Fri_thru_Mon 时间范围,该时间范围包括星期五、星期六、星期天和星期一从上午 9:00 到下午 5:00 这段时间:


sp_add_time_range Fri_thru_Mon, Friday, Monday, "09:00", "17:00"

示例 5

创建 Wednesday_night 时间范围,该时间范围从星期三下午 5:00 到午夜 12:00:


sp_add_time_range Wednesday_night, Wednesday, Wednesday, "17:00", "00:00"

用法

使用 sp_add_time_range 时,还存在一些其它注意事项:

  • SAP ASE 服务器包括一个指定的时间范围,即“所有时间”时间范围。此时间范围涵盖所有时间,从星期中的第一天到最后一天,从 00:00 到 23:59。不能对其进行修改或将其删除。

  • SAP ASE 服务器为每个指定的时间范围生成一个唯一 ID 号并将其插入到 systimeranges 系统表中。

  • 当在 systimeranges 系统表中存储时间范围时,SAP ASE 服务器会将其 <startday><endday> 值转换为整数。对于缺省语言为美国英语(us_english)的服务器,每个星期从星期一(第 1 天)开始到星期天(第 7 天)结束。

  • 可以创建与一个或多个其它时间范围重叠的时间范围。

  • 范围中的每一天都是连续的,因此星期中最后一天接在星期第一天之前。换句话说,星期天和星期一是连续的两天,就像星期二和星期三一样。

  • 每次查询批处理开始时,活动的时间范围都会被捆绑到一个会话。由于实际时间更改而导致的服务器活动时间范围的更改在查询批处理期间不会对会话产生影响。换句话说,如果资源限制在给定的时间范围内对查询批处理进行限制,但某个查询批处理是在此时间范围变为活动状态之前开始的,则该资源限制对已在运行的这一查询批处理不会产生影响。

  • 使用系统过程添加、修改和删除时间范围不影响当前正在进行的会话的活动时间范围。

  • 如果资源限制的作用域是某一事务,而在事务运行时,服务器的活动时间范围发生了更改,则新的活动时间范围不会影响当前正在进行的事务。

  • 对作用域为事务的资源限制进行更改不会影响任何当前正在进行的事务。