微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何处理 SQL 中的儒略日期翻转?

如何解决我如何处理 SQL 中的儒略日期翻转?

我有一个朱利安日期的清单,我需要按顺序保存。 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”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。