SQL Server中如何去除儒略日期查询结果的年份部分
获取仅包含年积日的SQL查询方法
嗨,这事儿很简单,有几种实用的方法能满足你只获取年积日的需求:
最直接的原生方法
其实datepart(DY, GETDATE())本身就会直接返回当前日期的年积日(也就是一年中的第几天),完全不需要先和年份相乘再处理,直接用这个就行:
SELECT datepart(DY, GETDATE()) as JulianDay
当你在2018年4月17日执行这条语句时,会直接得到你想要的107。
如果已有拼接后的数值结果(比如2018107),提取年积日的方法
要是你已经有了像2018107这样的拼接数值,想从中提取后三位的年积日,也有两种简单方式:
- 取模运算:利用数值对1000取模,直接得到后三位:
SELECT (datepart(year, GETDATE()) * 1000 + datepart(DY, GETDATE())) % 1000 as JulianDay
- 字符串截取:先把数值转为字符串,再截取最后三位:
SELECT RIGHT(CONVERT(varchar, datepart(year, GETDATE()) * 1000 + datepart(DY, GETDATE())), 3) as JulianDay
不过更推荐第一种直接调用datepart(DY, GETDATE())的方式,既简洁又高效,不需要额外的运算或类型转换~
内容的提问来源于stack exchange,提问作者AJ Moquete
相关产品推荐
相关产品推荐

