如何在SQL中处理Julian日期滚动?
我有一个朱利安日期的列表,我需要按顺序保存,比如36236364365001003。我的查询从处理最后一个朱利安日期开始,然后再处理每个日期。现在,它将最大限度地在365我的最低日期,我无法获得记录,跟随它。同一组数据也有一个日期字段,其中附有年份,但似乎没有什么帮助,因为在更正滚动之前不会收集这些记录。以下是我的简化查询:如何在SQL中处理Julian日期滚动?,sql,julian-date,Sql,Julian Date,我有一个朱利安日期的列表,我需要按顺序保存,比如36236364365001003。我的查询从处理最后一个朱利安日期开始,然后再处理每个日期。现在,它将最大限度地在365我的最低日期,我无法获得记录,跟随它。同一组数据也有一个日期字段,其中附有年份,但似乎没有什么帮助,因为在更正滚动之前不会收集这些记录。以下是我的简化查询: select JulianDate, RecordDate from table where JulianField > @LowestJulianDate an
select JulianDate, RecordDate
from table
where JulianField > @LowestJulianDate
and RecordDate between GetDate() and DateAdd(day, 6, GetDate())
样本日期:
朱利安塔特
记录日期
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
为什么不按年份列和朱利安日期列排序呢
select JulianDate, RecordDate
from table
order by yearcolumn,JulianDate
您不能仅仅使用“JulianDate”,它实际上是DayOfYear值。您还需要单独或作为“JulianDate”值的一部分存储它所指的年份。例如,您需要的不是“362”,而是“2021362”。
362
在我看来不是一个日期。而且它显然与getdate()
返回的内容不兼容。请提供样本数据和预期结果。朱利安日期是一年中编号的日期,范围从001到365。因此,如果朱利安的日期是362年,那么实际日期是2020-12-28年,我列出的日期范围是2021-01-03年。返回的数据将是朱利安日期列表和实际日期。样本数据和预期结果将澄清这个问题。军方使用的儒略日期包括年份。这过去是5位数字,前2位是年份,但自2000年以来,年份应该是4位数字,后面是3位的DayOfYear数字。我建议您查看julian日期标记的说明(并单击了解更多链接)。。。我不认为你在和朱利安约会。这并不是说这对你有直接的帮助,只是如果你正确地标记了问题,你可能会得到更相关的答案。其他人似乎也感到困惑。考虑到我提出的问题,这是行不通的。如果我从最低的朱利安日期开始,那么下面就没有记录了。按记录日期订购年份不会改变这一点。我在寻找的答案是,必须改变如何使用最低儒略日期来获得名单。如列出记录编号,然后将最低的儒略日期记录编号设置为起点。我想我真的要试一下。我不是跟着,而是解释你原来的问题,并提供样本数据和期望的输出。因为朱利安日期只是一年中的某一天,不是真正的日期,因此,当你寻找JulianField>@LowestJulianDate
时,你如何知道从哪一年开始?以一种迂回的方式,这就是解决方案。基本上,我需要在一个单独的字段中添加记录日期的年份,然后按该字段排序数据。谢谢你给我指引了正确的方向。