问题描述
我有一个朱利安日期的清单,我需要按顺序保存。 362,363,364,365,001,002,003. 我的查询从处理最后一个儒略日期和之后的每个日期开始。现在它会将我的最低日期最大化为 365 并且我无法获得跟随它的记录。同一组数据也有一个附有年份的日期字段,但它似乎没有帮助,因为在更正翻转之前不会收集这些记录。这是我的简化查询:
select JulianDate,RecordDate
from table
where JulianField > @LowestJulianDate
and RecordDate between GetDate() and DateAdd(day,6,GetDate())
采样日期:
JulianDate | 记录日期 |
---|---|
362 | 2020-12-28 |
363 | 2020-12-29 |
364 | 2020-12-30 |
365 | 2020-12-31 |
001 | 2021-01-01 |
002 | 2021-01-02 |
003 | 2021-01-03 |
所需的输出:
JulianDate |
---|
362 |
363 |
364 |
365 |
001 |
002 |
003 |
因此,如果您想象我们从第 362 天开始,我们的 @LowestJulianDate 是 362,我们的记录日期范围是今天和接下来的 6 天,完成了朱利安日期列表。
如何让日期按顺序进行并在翻转中解决?
解决方法
为什么不按年份列和儒略日期列排序?
select JulianDate,RecordDate
from table
order by yearcolumn,JulianDate
,
您不能仅使用“JulianDate”,它实际上是 DayOfYear 值。您还需要单独或作为“JulianDate”值的一部分存储它引用的年份。例如,您需要“2021362”而不是“362”。