SQL查找进入年份的天数

时间:2015-06-09 13:47:46

标签: sql sql-server date

我想根据日期计算年度数字作为年度的比例 - 所以如果400是年度数字,我想将此除以365然后乘以结果,然而许多天相当于今天&# 39; s日期(例如(400/365)* 160))。

有没有一种方法可以使用SQL server select语句来避免手动输入160数字?

400数字来自名为HES的标准字段。

感谢。

3 个答案:

答案 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只是一种简单的方法)。