我想根据日期计算年度数字作为年度的比例 - 所以如果400是年度数字,我想将此除以365然后乘以结果,然而许多天相当于今天&# 39; s日期(例如(400/365)* 160))。
有没有一种方法可以使用SQL server select语句来避免手动输入160数字?
400数字来自名为HES的标准字段。
感谢。
答案 0 :(得分:5)
您可以使用datepart(dayofyear, getdate())
- 将返回代表今年某一天的数字。见MSDN DatePart
答案 1 :(得分:1)
由于这是sql server而另一个答案是使用mysql,我将发布sql server版本。
select DATEPART(dayofyear, getdate())
答案 2 :(得分:0)
对于您的计算,您可能需要考虑闰年。 SQL Server具有方便的datepart(dayofyear, . . )
功能。完整的解决方案如下:
select datepart(dayofyear, dateadd(day, -1, cast(cast(year(getdate() + 1) as varchar(255)) + '0101' as date))) as daysinyear,
datepart(dayofyear, getdate()) as currentday,
datepart(dayofyear, getdate()) * 1.0 / datepart(dayofyear, dateadd(day, -1, cast(cast(year(getdate() + 1) as varchar(255)) + '0101' as date)))as daysinyear
请注意,SQL Server执行整数除法,因此要获得分数,您需要转换为某种类型的十进制表示形式(* 1.0
只是一种简单的方法)。