65.9K
CodeProject 正在变化。 阅读更多。
Home

SQL - 带存储过程的时间表(SQL Server)

2004年4月28日

2分钟阅读

viewsIcon

61968

downloadIcon

540

一个创建时间表(包含所有相关细节)的存储过程。

Sample Image - TableTemps.gif

引言

在许多项目中,我们可以使用时间表(例如在人力资源领域)。

此 SQL 脚本用于创建时间表和存储过程,该过程自动完成两个给定日期之间的范围。

此脚本基于 SQL Server,并且基于法国假期,对于其他国家/地区,必须修改公共假期部分。

时间表

脚本创建的表的详细信息

  • TEMPS_ID (类型:smallINt,属性:NOT NULL):日期的 ID
  • TEMPS_DATE (类型:smalldatetime,属性:NOT NULL):日期
  • TEMPS_ANNEE (类型:smallINt,属性:NOT NULL):日期的年份
  • TEMPS_MOIS (类型:tINyINt,属性:NOT NULL):日期的月份
  • TEMPS_JOUR (类型:tINyINt,属性:NOT NULL):日期的日
  • TEMPS_JOURDESEMAINE (类型:tINyINt,属性:NOT NULL):日期的星期几号
  • TEMPS_JOURDELANNEE (类型:smallINt,属性:NOT NULL):日期在一年中的第几天
  • TEMPS_JOUROUVRE (类型:char(1),属性:NOT NULL):标志,用于知道当天是否营业
  • TEMPS_TRIMESTRE (类型:tINyINt,属性:NOT NULL):日期的季度编号
  • TEMPS_SAISON (类型:char(10),属性:NOT NULL):日期的季节
  • TEMPS_FERIE (类型:varchar(20),属性:NULL):如果日期是公共假期,是哪个?

存储过程

存储过程用于将数据添加到时间表中,实际上,使用此 SP,我们可以清除现有时间表的所有数据,只需执行此 SP 即可。

SP 位于 SQL 源代码中。

相关链接

此文章的法语版本(完整版本)可见于此链接

 - http://www.asp-php.net/scripts/asp.net/table_sql_temps.php

更新

我修改了 SQL 脚本以添加功能(来自 Frédéric BROUARD),以精确计算季节,您可以在以下地址查看这些功能

 - http://sqlpro.developpez.com/MSSQLServer_fonctions/UDF.html#FN_SEASONS

© . All rights reserved.