SQL Server 利用 master..spt_values 生成起止日期内的所有日期

hehongda · 2018年09月28日 · 58 次阅读

该表是从 sybase 继承过来的,是个内部字典表,供 SQL Server 内部使用。
我们可以在许多系统存储过程和函数的源代码中发现它的身影。其实可以将它理解成我们编程时常用的数据字典.

列名分别为名称、值、类型、下限、上限、状态;

类型列的取值含义: D=Database Option P=Projection DBR=Database Role DC=Database Replication I=Index L=Locks V=Device Type 因为比较多,无法一一列举。其中类型 P 较为特殊,它只是 0-2047(与版本有关) 之间的数字的简单列表,作为对所有类型之间关系的预测。

代码:

select a.date
from
  (select
  dateadd(dd,number,'2018-09-01') as date
from master..spt_values where type='p' and  dateadd(d,number,'2018-09-01')<='2018-10-20')a
order by a.date

type 中的 p 可能会区分大小写。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册